sincerely的个人博客分享 http://blog.sciencenet.cn/u/sincerely

博文

用R绘制pie图,pie3D图以及扇形图

已有 4892 次阅读 2015-11-30 10:05 |个人分类:R 语言笔记|系统分类:科研笔记| style, Names

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)


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”)

pie3D图由以下函数创建

pie3D(x, main, labels,explode, radius, height..)

main:饼图主标题

labels:各个“块”的标签

explode:各个“块”之间的间隔,默认值为0

radius:整个“饼”的大小,默认值为10~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)))





https://blog.sciencenet.cn/blog-1468811-939789.html

上一篇:R语言 绘制pie图,pie3D图以及扇形图
下一篇:Barplot画图参数详解
收藏 IP: 218.70.255.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-18 08:20

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部