R语言-饼图

饼图:

饼图(pie chart)可用于表示不同的分类情况,通过弧度的大小来对比各种分类。饼图通过将一个圆饼按照分类的占比来划分成多个切片,整个圆饼代表数据的总量,每个切片(圆弧)表示该分类占总体的比例,所有切片(圆弧)的加和等于100%。饼图清晰明了,很容易就能对数据占比进行主观比较,因此可以作为数据处理前对整体把握的一种手段。
饼图可以很好的帮助我们快速了解数据的占比,但使用时也有一些不足的地方:
(1)饼图不适用于多分类的数据,一般来说不多于9个分类,太多的分类导致每个切片大小都太小,没有区分度。
(2)相对于具备同样功能的其他图表(如百分比堆积柱形图,圆环图),饼图需要更大的画布空间,所以他不适用于数据量大的场景。
(3)很难在多个饼图之间进行数据的比较,此时可以用百分比堆积柱形图或者百分比堆积条形图代替。
(4)饼图不适合多变量的连续数据占比可视化,此时应该使用百分比堆积面积图展示数据,比如多变量的时序数据。

排序问题:

饼图最需注意的一点是排序问题,需要按照多个类别进行一定规则的排序,但并不是简单的升序和降序排列。
如果将饼图看作是一个钟表,那么最显眼的地方一定是12点左右,所以在饼图的展示上最好是将数据占比最大的两个放在12点的左右两边才能最显眼,剩下的数据按照升序或者降序顺时针或者逆时针排列在下方即可。
所以更具体的原则就是:
(1)如果每组的数据占比都不大,都<50%,那么就可以直接将数据按照从大到小排序,从12点开始顺时针展示。
(2)如果存在某组数据超过50%,那么久将其放在12点的右边,第二大的放在左边,其它组按顺序展示。
如下图就看很舒服:
借用Echart团队的图

动手绘制饼图:

使用ggplot2包中的geojm_bar()函数绘制堆积柱形图,然后将直角坐标系转换成极坐标系,就可以显示为饼图。

第一步:

随便生成一些数据,用来绘制饼图

my_data <- data.frame(group=c("甲","乙","丙"),value=c(25,35,45))

第二步:

生成一个简单的堆积柱形图

library(ggplot2)
ggplot(my_data, aes(x="",y=value,fill=group))+
  geom_bar(stat="identity",width=1)

其中的stat参数是干什么用的呢,这涉及到ggplot2包的图层语法,最简单来说就是geom_xxx()叫几何对象函数,stat_xxx()叫统计变换函数,这两个相辅相成,在geom_xxx()里有stat参数,在stat_xxx()里有geom参数,两个函数侧重点不同,但目的都是为了完整地绘图。

第三步:

将堆积柱状图变成饼图,只需设定个坐标系即可

library(ggplot2)
ggplot(my_data, aes(x="",y=value,fill=group))+
  geom_bar(stat="identity",width=1)+
  coord_polar("y",start=0)

在这里插入图片描述
最简单的饼图就绘制完成!略丑……

  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值