R可视乎|饼图

简介: 饼图(pie chart)被广泛地应用于各个领域,用于表示不同分类的占比情况,通过弧度大小来对比各种分类。饼图通过将一个圆饼按照分类的占比划分成多个切片,整个圆饼代表数据的总量,每个切片(圆弧)表示该分类占总体的比例,所有切片(圆弧)的加和等于100%。

饼图(pie chart)被广泛地应用于各个领域,用于表示不同分类的占比情况,通过弧度大小来对比各种分类。饼图通过将一个圆饼按照分类的占比划分成多个切片,整个圆饼代表数据的总量,每个切片(圆弧)表示该分类占总体的比例,所有切片(圆弧)的加和等于100%。


下面会介绍两种在R中实现饼图的方法。

graphics包绘制饼图



library(RColorBrewer)library(dplyr)library(graphics)library(ggplot2)

init.angle可设定饼图的初始角度,labels可添加标签。颜色用了brewer.pal 函数,第一个参数为个数,第二个参数为名字,这里用的是BrBG,具体可help 一下。首先我们构造一个模拟数据,如下所示,并用dplyr包中的arrange()进行排序(默认从小到大),faction表示数值所占比例,ymax进行累积占比,总值为1。


df <- data.frame(value = c(24.20,30.90,12.50,12.30,8.10,12.10),group = c('LVS','SJM','MCE','Galaxy','MGM','Wynn'))df <-arrange(df,value)

3(Z3UBE5L]ADK%N}V7()JV6.pngimage.gif


这里做了两种类型的标签,下面两图就是根据不同标签绘制的。labs包含了百分比和名字,中间用\n来分行;lab则只包含百分位数。以下为两种不同标签的结果,为了区分,使用rewer.pal()函数将颜色进行变换。


labs <- paste0(df$group," \n(", round(df$value/sum(df$value)*100,2), "%)") #标签lab <- paste0(round(df$value/sum(df$value)*100,2), "%") #标签pie(df$value,labels=labs, init.angle=90,col =  brewer.pal(nrow(df), "BrBG"),    border="black")pie(df$value,labels=lab, init.angle=90,col =  brewer.pal(nrow(df), "Blues"),    border="black")

(GM8E(55QCND0$YT@N}E)RT.png


64JL)%LHSVBMA6W4P{`VZ_F.png



ggplot2 包绘制饼图


使用R中ggplot2包的geom_bar()函数绘制堆积柱形图,然后将直角坐标系转换成极坐标系,就可以显示为饼图,但还是需要使用geom_text()函数添加数据标签。注意的是:ymax,ymin也需要自己计算得到。

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='地区') +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)


0W{$G{900H{JA09CR_9DE09.png

但是可以看到:由于缺乏饼图与数据标签之间的引导线,总感觉美观度不够,所以推荐使用graphics包的pie()函数绘制饼图。

目录
相关文章
|
1月前
【统计图】Echarts实现多条折线图渐变堆叠效果
【统计图】Echarts实现多条折线图渐变堆叠效果
|
3月前
【SPSS】基础图形的绘制(条形图、折线图、饼图、箱图)详细操作过程(下)
【SPSS】基础图形的绘制(条形图、折线图、饼图、箱图)详细操作过程
132 0
|
3月前
【SPSS】基础图形的绘制(条形图、折线图、饼图、箱图)详细操作过程(上)
【SPSS】基础图形的绘制(条形图、折线图、饼图、箱图)详细操作过程
87 0
|
4月前
|
数据可视化
R可视乎|三维散点图
R可视乎|三维散点图
40 0
|
6月前
|
前端开发
【前端统计图】echarts多条折线图和横柱状图实现
【前端统计图】echarts多条折线图和横柱状图实现
46 0
|
7月前
|
数据挖掘
这图怎么画| 批量小提琴图+箱线图+散点+差异分析
这图怎么画| 批量小提琴图+箱线图+散点+差异分析
140 0
|
11月前
|
机器学习/深度学习
gtsummary|巧合-绘制多种数据汇总表“神器”
gtsummary|巧合-绘制多种数据汇总表“神器”
120 0
|
12月前
|
数据可视化
R 可视乎 | 华夫饼图
R 可视乎 | 华夫饼图
87 0
|
12月前
|
数据可视化
R 可视乎|优雅的绘制流程图
R 可视乎|优雅的绘制流程图
42 0
Excel实现双Y轴折线图(四条折线中有两个主轴两个副轴)
Excel实现双Y轴折线图(四条折线中有两个主轴两个副轴)
Excel实现双Y轴折线图(四条折线中有两个主轴两个副轴)