||
R语言有许多库来创建表和图,饼图在商业世界中无处不在,它是通过不同颜色的切片来代表不同的值,其中切片标记和对应切片的数量也被表示在图中。
在R中饼图可以由以下函数创建:
pie(x, labels = names(x), radius = 0.8,main= “NULL”, col = NULL, clockwise = FALSE,
density = NULL, angle = 45, lty = NULL, border = NULL, edges = 200, ….)
x 表示一个非负的数值向量,表示每个扇形的面积。
labels代表各扇形面积标签的字符型向量。
radius 表示饼图的圆的半径,特别是在字符标签过长的情况尤其适用。
main 是用来表示图标的标题的。
col 是表示每个扇形的颜色,相当于调色板。
clockwise 是一个逻辑值,用来指示饼图各个切片是否按顺时针做出分割。
density:底纹的密度。默认值为NULL。
angle:设置底纹的斜率。
edges设置多边形的边数(圆的轮廓是具有很多边的多边形近似)。
实例一:简单的饼图
x <- c(10,20,30,40,50)
label <- c("Alabama","Alaska", "Arizona", "Arkansas", "California")
pie(x, labels = label, clockwise = TRUE)#这是按顺时针方向来绘制饼图
实例二:为饼图添加标题和颜色
pie(x, labels=label, main="City pie chart", col=terrain.colors(length(x)))
在这里是用了terrain.colors这个颜色函数,也可以选择彩虹颜色col=rainbow(length(x))
或者自定义的颜色
实例三:饼图每个扇形的百分比以及添加图表图例
继续以上面的例子为例
x <-c(10,20,30,40,50)
label <-c("Alabama", "Alaska", "Arizona","Arkansas", "California")
piepercent<-round(100*x/sum(x), 1)
piepercent <-paste(piepercent, "%", sep = "")
pie(x,labels=piepercent, main="City pie chart",col= terrain.colors (length(x)))
legend("topright",label, cex=0.8, fill=terrain.colors(length(x)))
另外有没有发现右边的文本标签离饼图比较远,有一个比较好的设置标签的位置的方法是用locator()参数,你可以再你想要的位置处双击鼠标即可,代码如下
pie(x,labels=piepercent, main="City pie chart",col= terrain.colors(length(x)))
legend(locator(1),label, cex=0.8, fill=terrain.colors(length(x)))
3D 饼图
实例四:用plotrix packages 绘制3D 饼图
饼图和3个维度需要使用额外的软件包绘制。软件包:plotrix 称为 pie3D
library(plotrix)#没有的话需要安装,install.packages(“plotrix”)
pie的3D图由以下函数创建
pie3D(x, main, labels,explode, radius, height..)
main:饼图主标题
labels:各个“块”的标签
explode:各个“块”之间的间隔,默认值为0
radius:整个“饼”的大小,默认值为1,0~1为缩小
height:饼块的高度,默认值为0.1
例子:
pie3D(x,labels=label,explode=0.1,main="PieChart of Countries ")
扇形图(fan plot)
有时候饼图会让各个切块的面积比较比较困难,所以为改善这种状况,我们创造了一种成为扇形图(fan plot)的饼图变种,扇形图(Lemon & Tyagi, 2009)为用户提供了一种同时展示相对数量和相互差异的方法。在R中,扇形图是通过plotrix包中的fan.plot()函数实现的。
代码如下和结果如下的
library(plotrix)
fan.plot(x,labels = label, main="Fan Plot",col= terrain.colors (length(x)))#可使用函数内置的颜色
legend("topright",label, cex=0.8, fill= terrain.colors (length(x)))
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-23 16:43
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社