R可视乎|圆环图

2021-04-09 10:54:32 浏览数 (2)

对于饼图,上一次学习《R语言数据可视化之美》的时候主要利用graphics包和ggplot包(可见R可视乎|饼图)。这几天的学习中发现还有一个更加简便的方法——ggpie包。接下来做简单描述,然后进入圆环图的学习。

数据介绍

用一个非常简单的数据进行可视化,两个变量:group,value。

代码语言:javascript复制
df <- data.frame(
  group = c("Male", "Female", "Child"),
  value = c(10, 20, 30))

ggpie包绘制饼图

常用参数:

lab.pos标签位置: 可设置为"in",'out';

lab.font标签字体颜色:可设置各种颜色,例如 "white"

简单例子:

代码语言:javascript复制
ggpie(df, "value",
      label = "group",    # 标签
      fill = "group",                            
      color = "white",    #图片轮廓颜色
      palette = c("#00AFBB", "#E7B800", "#FC4E07") )

其他俩常用参数可自行加入以上基础饼图中,这里不做大篇幅介绍。接下来介绍圆环图的各种方式绘制(圆环图和饼图的意义其实差不多,都是给出各数据的比重,只不过,圆环图中间少了一块,变成环状)。主要有两个包:ggpubr包(推荐使用)ggplot2包。

ggpubr包绘制圆环图

利用该包中的ggdonutchart()可非常方便的绘制环状图,数据还是使用前面的数据。

常用参数:(与上面ggpie函数类似)

简单例子:

代码语言:javascript复制
ggdonutchart(df, "value",
             label = "group",                               
             fill = "group",                            
             color = "white",                                
             palette = c("#00AFBB", "#E7B800", "#FC4E07") 
)

ggplot2包绘制圆环图

在[R可视乎|饼图]中ggplot2包绘制饼图的基础上,只要再加一条代码即可完成:xlim(c(0, 5)),即将x轴范围控制在0-5。

代码语言:javascript复制
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绘制则需要很多代码,这里不建议使用。

这是今天R可视化的学习笔记,我们下次再见。

0 人点赞