对于饼图,上一次学习《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可视化的学习笔记,我们下次再见。