其他
每天学习一点R:23.扇形图的绘制
在上一期的推文中我介绍了饼图的绘制方法,可有些时候我们可能并不需要一个完整的圆来展示数据,此外在饼图中,有时我们无法有效的比较不同扇形区域的大小,特别是在扇形区域相差不大的情况下。
今天介绍一种重叠扇形图的绘制方法来解决这一问题。
绘图所使用的函数为plotrix包的fan.plot(),首先还是先介绍一下该函数的各种参数。
fan.plot(x,edges=200,radius=1,col=NULL,
align.at=NULL,max.span=NULL,labels=NULL,
labelpos=NULL,label.radius=1.2,align="left",
shrink=0.02,main="",ticks=NULL,include.sumx=FALSE,...)
各参数意义:
x,代表绘图个区域比例的数值向量;
edges,弧形由多少个边组成;
radius,扇形的半径;
col,扇形各部分的填充颜色;
align.at,开始align的位置;
max.span,各部分最大的延伸角度;
labels,各部分的标签;
labelpos,标签的位置;
label.radius,标签和绘图部分的距离;
align,进行align的位置;
shrink,相邻部分的间距;
main,主标题;
ticks,刻度线的个数;
include.sumx,是否同时绘制一个所有数值之和的部分。
接下来进行绘图的详细讲解,首先建立绘图所需的数据,绘图需要两个向量,一个代表各扇形的比例,另一个为各扇形的标签。
a <- c("A","B","C","D","E","F","G")
b <- c(17,13,8,5,10,2,9)
绘制一个基本的扇形比较图。
library(plotrix)
fan.plot(b,labels=a,main="Fan Plot")
edges用于指定弧形边的数目,也就是说理论上可以将扇形图的弧型改为多边形,但是这个参数不要轻易使用,因为其定义的是所有扇形组成的圆形的边的数目,但是由于不同扇形的面积并不一致,所以设置出来之后的图像会变得十分奇怪。
fan.plot(b,labels=a,edges = 7,main="Fan Plot")
library(RColorBrewer)
fan.plot(b,labels=a,radius = 0.9,col = brewer.pal(7,"Set3"),
max.span = 2.5,label.radius = 1.2,shrink = 0.05,
main="Fan Plot")
max.span的作用是等比例的缩放各扇形的区域,shrink的作用是等比例的缩放各扇形的半径,使得扇形上方的🌈更为明显,更容易区分不同的扇形区域。
fan.plot(b,labels=c(a,"Total"),radius = 0.9,col = brewer.pal(8,"Set3"),
max.span = 2.5,label.radius = 1.2,shrink = 0.05,
include.sumx = TRUE,main="Fan Plot")
使用include.sumx可以添加一个表示所有扇区综合的扇形区域,但是感觉实际用处不是很大。