【R语言】--- 饼状图

Python012

【R语言】--- 饼状图,第1张

饼状图,又称为饼图,能够划分几个扇形的圆形统计图。可以描述量、频率、占比的相对关系。R语言中,可以用graphics包的pie()函数、ggplot2包的geom_bar()配合coord_polar()函数绘制,3D 的饼状图,可以使用 plotrix包的pie3D()函数。本文详细介绍饼状图的绘制。

x: 数值向量,表示每个扇形的面积

labels: 字符型向量,表示各扇形面积标签

edges: 多边形的边数(圆的轮廓类似很多边的多边形)

radius: 饼图半径

main: 饼图标题

clockwise: 逻辑值,用来指示饼图各个切片是否按顺时针做出分割

angle: 设置底纹的斜率

density: 底纹的密度,默认值为 NULL

col: 是表示每个扇形的颜色,相当于调色板

[1] Robert I. Kabacoff (著). R语言实战(高涛/肖楠/陈钢 译). 北京: 人民邮电出版社.

[2] https://www.runoob.com/r/r-pie-charts.html

[3] https://zhuanlan.zhihu.com/p/80415566

饼图或者说扇形图在统计分析结果展示中非常常用,R语言自带做饼图的函数pie,做起来非常简单,只需提供比例,样品名称即可。

默认的颜色只有6中,循环使用的,不过这个颜色可以自定义。

用pie作图其实就够了,但奈何很“卷”,有其他好看的饼图,所以接下来还是结合ggplot2与ggforce做可以变换的饼图,例如空心饼图。单独用ggplot2作图比较繁琐,不建议去尝试了,太费时间没必要。

先做一个基本的饼图。

要想得到空心饼图,只需要将geom_arc_bar参数中r0改为1即可。

想要分割饼图,geom_arc_bar中添加explode参数。

可以发现,以上作图有一个bug就是添加比例标记很麻烦,要想实现自动化需要编写函数很麻烦。参考: https://stackoverflow.com/questions/52960015/how-to-avoid-label-overlap-in-pie-chart 。可以先将每个标签角度计算好,再添加,结果还好。

好了以上就是饼图的内容了,其本质是为了统计比例,结果解读比较直观,我们也是跟风做了一些变换的图形,其实最简单的饼图就可以了,各取所需。此外,还有很多其他方法制作饼图,感兴趣的自行百度了解。