饼图也称圆形图,主要用来分类数据的可视化,用圆形内各个扇形的角度来表示样本或总体中各个组成部分的比例,主要用于研究数据的结构问题,这里我们介绍一下饼图的简单绘制方法。

一、平面饼图的绘制

首先我们来介绍一下pie函数的基本书写格式,如下:

pie(x,                #表示数值型向量x

labels,              #各个扇形的标签,为字符串型向量

edges,             #多边形的边数

radius,             #饼图的半径

clockwise,      #逻辑值,决定是否让饼图的各个部分按顺时钟切割排序

init.angle,       #切片的起始角度,默认为0

density,          #底纹的密度,默认为NULL

angle,            #底纹的斜率

col,                 #决定各个扇形的颜色

border,          #饼图边框的颜色

main                 #饼图的标题

)

那么现在我们来尝试一下实际操作

#建立数值向量x
x <- c(12,32,14,23,15,32)
#建立颜色向量z
z <- c('green','gray','yellow','blue','red','orange')
#绘制饼图m
m <- pie(x,main='问题一调查结果统计',density =80,angle=30,col=z)

运行后,如下所示的饼图

这样一看这样绘制出的饼图感觉有点小,我们给上面的代码添加上radius参数

m <- pie(x,main='问题一调查结果统计',density =80,angle=30,col=z,radius=1.05)

当然我们也可以添加edges参数,为饼图添加一下它的边,虽然这样画出来的图就不是一个圆了。同时添加clockwise参数,让各个部分做自动分割。

m <- pie(x,main='问题一调查结果统计',density =80,angle=30,col=z,radius=1.05,edges=6,clockwise=T)

当然一个直观的饼图是需要有完整的百分比参数与图例来描述的,我们可以用以下的代码来为画出来的饼图添加百分比以及图例。

#将数据四舍五入保存为两位小数
piepercent<- paste(round(100*x/sum(x), 2), "%")
#给数据添加百分号
m <- pie(x,main='问题一调查结果统计',density =80,angle=30,col=z,radius=1.05,edges=6,clockwise=T,labels=piepercent)
#-------------------------------------------------------------
#添加图例
legend("topright",c('父母','室友','同学','老师','伴侣','其它'),cex=1,fill=rainbow(length(x)))

分割线以上的代码运行后所绘制出的圆形图

添加图例后的圆形图

绘制出图形之后,我们可以利用png、jpeg或者bmp函数来将绘制的圆形图存储到图片。

二、3D饼图的绘制

为了绘制3D饼图,我们需要利用到R的扩展包plotrix中的pie3D函数

基本书写格式可以参照pie3D函数的写法,值得注意的是pie3D函数常用的参数explode,这是pie函数所没有的,explode后的数值表示了3D饼图的刀口大小。依旧用上述数据进行绘制:

#绘制3D饼图
m <- pie3D(x,main='问题一调查结果统计',density =80,angle=30,col=z,radius=1.05,edges=6,clockwise=T,labels=piepercent)

为3D的圆形图添加刀口,explode=0.5

#添加刀口
m <- pie3D(x,main='问题一调查结果统计',density =80,angle=30,col=z,radius=1.05,edges=6,clockwise=T,labels=piepercent,explode=0.05)
#添加图例
legend("topright",c('父母','室友','同学','老师','伴侣','其它'),cex=0.8,#添加图例fill=rainbow(length(x))) 

上述代码运行后生成的3D圆形图如下

其它的很多操作pie3D函数与pie函数差不多,这里不再赘述.

R语言自学笔记-----R绘图(二)---饼图相关推荐

  1. R语言实战笔记--第十二章 重抽样(置换检验)与自助法

    R语言实战笔记–第十二章 重抽样(置换检验)与自助法 标签(空格分隔): R语言 重抽样 自助法 置换检验 置换检验 双样本均值检验的时候,假设检验的方法就是,检查正态性.独立性.方差齐性,分别对应的 ...

  2. R语言自学笔记:数据处理、数据分布及数据检验

    一. 基本的数据统计处理 1. 数据的展示 对于一组数据,可以有许多统计分析的方法. (1) 基本信息 mean():求平均值 sum():求和 sd():求总体标准差--(样本-期望)/(样本数) ...

  3. R语言自学笔记:向量、矩阵及dataframe基础

    概要 记录一下在学习和练习过程中所遇到的一些细节问题 一. 向量 1.向量的基础 (1)R语言中,向量元素从一开始标号,vector[0] 用于储存向量的类型 (2)向量的嵌套,在R语言中向量之间是可 ...

  4. R语言学习笔记及总结二

    **例1: **1.用命令做 mean为均值 sd 为样本标准差 2.把若干命令保存到文本文件txt中,然后用source函数运行整个文件 .通过source函数运行外部文件 注意:字符串中的反斜杠. ...

  5. R语言自学笔记-----数据转换

    一.从数据集中取子集 这里以数据框x做演示 x <= read_excel('车险数据.xlsx') (一)索引的方法 1.常规方法索引取子集 x1 <- x[c(1:30),c(1:3) ...

  6. R语言自学笔记:回归分析基础

    一.  线性回归 1. lm()函数返回的是对于输入变量的预测模型,返回的结果可以配合许多函数进行使用. > lm.model <- lm(wt ~ mpg, data = mtcars) ...

  7. [R语言学习笔记] - R语言及Rstudio配置合集

    本文涉及配置 package目录重定向. 下载镜像(Repository)重定向. Rstudio editor theme. Rprofile.site 配置文件位于R内核的安装目录下.如果安装了多 ...

  8. R语言学习笔记(1~3)

    R语言学习笔记(1~3) 一.R语言介绍 x <- rnorm(5) 创建了一个名为x的向量对象,它包含5个来自标准正态分布的随机偏差. 1.1 注释 由符号#开头. #函数c()以向量的形式输 ...

  9. r语言c函数怎么用,R语言学习笔记——C#中如何使用R语言setwd()函数

    在R语言编译器中,设置当前工作文件夹可以用setwd()函数. > setwd("e://桌面//") > setwd("e:\桌面\") > ...

最新文章

  1. 关于时间差查询的一个小技巧
  2. 可编辑树Ztree的使用(包括对后台数据库的增删改查)
  3. STM32 电机教程 24 - ST MCLIB实战之无感变绝对式位置传感器
  4. linux限制pptp连接数_性能调优,让你的服务器更强大!增加TCP连接最大限制
  5. 函数参数和函数返回值
  6. [k8s]dashboard1.8.1搭建( heapster1.5+influxdb+grafana)
  7. LeetCode Week 2:第 11 ~ 20 题
  8. python 位运算符与逻辑运算符(字符串的逻辑运算)
  9. Python正则表达式指南下半部
  10. python基于Suprise模块构建推荐算法模型,实现电影、书籍等资源的推荐
  11. 小猫咪,Naughty baby
  12. 第一章--多媒体技术概述
  13. linux环境下,mysql数据库的完美卸载!(亲测)
  14. Unity中国象棋(二)——走棋
  15. SpringBoot基础学习之整合Swagger框架(上篇)
  16. svn分支开发与主干合并(branch merge)
  17. VMware虚拟机超简单的联网方法
  18. Shader学习2——兰伯特
  19. 【C语言趣味教程】typedef 真爽不爽不要玩 | 初识结构体
  20. ddr2服务器性能强吗,DDR2与DDR3之间的区别

热门文章

  1. Java编程入门先学什么?Java零基础学习路线分享!
  2. hdu吃糖果解题报告
  3. 智能客服系统助力企业
  4. 2021年中国互联网!知识付费行业发展报告!
  5. 牛客网_java选择题
  6. 微信中下载app共有两种实现方式,然而安卓手机跟苹果手机还尽然不同。
  7. 无法从[C:\My Java\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\conf\server.xml]加载服务器配置
  8. MYSQL之DQL(数据库查询语言)
  9. 如何准备阿里社招面试,顺谈Java程序员学习中各阶段的建议
  10. 地理围栏算法解析(Geo-fencing)