查看原文
其他

每天学习一点R:23.扇形图的绘制

红皇后学术 红皇后学术 2023-08-18

在上一期的推文中我介绍了饼图的绘制方法,可有些时候我们可能并不需要一个完整的圆来展示数据,此外在饼图中,有时我们无法有效的比较不同扇形区域的大小,特别是在扇形区域相差不大的情况下。

今天介绍一种重叠扇形图的绘制方法来解决这一问题。

绘图所使用的函数为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可以添加一个表示所有扇区综合的扇形区域,但是感觉实际用处不是很大。

扩展阅读



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存