对于饼图,上一次学习《R语言数据可视化之美》的时候主要利用graphics包和ggplot包(可见R可视乎|饼图)。这几天的学习中发现还有一个更加简便的方法——ggpie包。接下来做简单描述,然后进入圆环图的学习。
数据介绍
用一个非常简单的数据进行可视化,两个变量:group,value。
df <- data.frame( group = c("Male", "Female", "Child"), value = c(10, 20, 30))
ggpie包绘制饼图
常用参数:
lab.pos标签位置: 可设置为"in",'out';
lab.font标签字体颜色:可设置各种颜色,例如 "white"
简单例子:
ggpie(df, "value", label = "group", # 标签 fill = "group", color = "white", #图片轮廓颜色 palette = c("#00AFBB", "#E7B800", "#FC4E07") )
其他俩常用参数可自行加入以上基础饼图中,这里不做大篇幅介绍。接下来介绍圆环图的各种方式绘制(圆环图和饼图的意义其实差不多,都是给出各数据的比重,只不过,圆环图中间少了一块,变成环状)。主要有两个包:ggpubr包(推荐使用)与ggplot2包。
ggpubr包绘制圆环图
利用该包中的ggdonutchart()可非常方便的绘制环状图,数据还是使用前面的数据。
常用参数:(与上面ggpie函数类似)
简单例子:
ggdonutchart(df, "value", label = "group", fill = "group", color = "white", palette = c("#00AFBB", "#E7B800", "#FC4E07") )
ggplot2包绘制圆环图
在[R可视乎|饼图]中ggplot2包绘制饼图的基础上,只要再加一条代码即可完成:xlim(c(0, 5)),即将x轴范围控制在0-5。
df$fraction = df$value / sum(df$value)df$ymax = cumsum(df$fraction)df$ymin = c(0, head(df$ymax, n = -1))ggplot(data = df, aes(fill = group, ymax = ymax, ymin = ymin, xmax = 4, xmin = 3)) + geom_rect(show.legend = F,alpha=0.8) + scale_fill_brewer(palette = 'Set3')+ coord_polar(theta = "y") + labs(x = "", y = "", title = "",fill='地区') + xlim(c(0, 5)) + theme_light() + theme(panel.grid=element_blank()) + ## 去掉白色外框 theme(axis.text=element_blank()) + ## 把图旁边的标签去掉 theme(axis.ticks=element_blank()) + ## 去掉左上角的坐标刻度线 theme(panel.border=element_blank()) + ## 去掉最外层的正方形边框 geom_text(aes(x = 3.5, y = ((ymin+ymax)/2),label = labs) ,size=3.6)
可以看到:ggpubr包绘制圆环图十分方便,而ggplot2绘制则需要很多代码,这里不建议使用。