云雨图是一个很形象的说法,是因为可视化的展示图形很像云朵+下雨,故而有了雨云图,如下:
剖析其原理,是上半部分是又一个小提琴图绘制,下半部分是由点图组成,然后拼接而成。Y叔在18年左右的文章《(翻)云(覆)雨图》曾经剖析过云雨图的绘制,本次给大家介绍用gghalves
快速绘制云雨图,其也是ggplot2生态圈中的一员。
安装gghalves:
if (!require(devtools)) {
install.packages('devtools')
}
devtools::install_github('erocoar/gghalves')
gghalves支持下面三种半边图绘制:
geom_half_boxplot
geom_half_violin
geom_half_point
通过上面几种方式,我们可以拼接出各种炫酷的可视化方案,下面一云雨图为例,简单展示:
library(tidyverse)
library(gghalves)
library(ggthemes)
# 绘图
ggplot(iris, aes(x = Species, y = Sepal.Width, fill = Species)) +
# 半边小提琴图
geom_half_violin(
aes(fill = Species),
adjust = 1.5,
trim = FALSE,
colour = NA,
# 展示小提琴图左边(l),右边(r)
side = 'r',
show.legend = F
) +
# 半边点图
geom_dotplot(
aes(color = Species),
binaxis = "y",
method = "histodot",
stackdir = "down",
dotsize = 0.4,
shape=18,
show.legend = F
) +
# 翻转x、y轴
coord_flip() +
theme_few()
组合图是未来高分杂志的首选,现在文章发表不仅仅要求论文本身的质量,还要求有新颖的可视化方案。
参考资料:
1.https://erocoar.github.io/gghalves/
2.https://guangchuangyu.github.io/cn/2018/11/raincloud/