什么是云雨图

不管它叫啥,就是一种对数据的可视化方法,可同时描述数据的概率密度和统计量。
为什么使用云雨图
当我们获得几组数据的时候,想看一看他们的统计量,在R中可以使用命令:summary() ,会将五分位数和均值等输出到 「Console」。但是相比于文字,一般人对图像的理解要更好,所以可以使用**箱线图(BoxPlot)**展示其统计量(下左),这时就会出现一个问题,(下左)几个箱线图似乎都一样,难道意味着这些组数据都一样?当我们把原始数据点添加上去(下右),就会发现数据之间的不同:数据的分布密度是不一样的。

这个时候就可以使用「 小提琴图(ViolinPlot)」描述数据的分布密度:

这时,有人就把这些东西都集合到了一起:云雨图(RainCloud Plot),一半儿的小提琴 + 箱线图 + 数据点
例子 R
需要的「R Packages」:ggdist、 tidyquant、 tidyverse
需要的「数据集」:mpg (源自ggplot2)
- 加载需要的工具和数据:
# LIBRARIES ----
library(ggdist)
library(tidyquant)
library(tidyverse)
# DATA -----
mpg
- 筛选数据,并新建一个「ggplot2」的画布(Canvas)
mpg %>%
filter(cyl %in% c(4, 6, 8)) %>%
ggplot(aes(x = factor(cyl), y = hwy, fill = factor(cyl)))
- 画上一半儿的小提琴:
ggdist::stat_halfeye()
# add half-violin from {ggdist} package
ggdist::stat_halfeye(
## custom bandwidth
adjust = 0.5,
## move geom to the right
justification = -.2,
## remove slab interval
.width = 0,
point_colour = NA
)

- 加上箱线图:
ggplot2::geom_boxplot(),限制宽度和不透明度
geom_boxplot(
width = .12,
## remove outliers
outlier.color = NA,
alpha = 0.5
)

- 添加原始数据点:
ggdist::stat_dots()
# Add dot plots from {ggdist} package
ggdist::stat_dots(
## orientation to the left
side = "left",
## move geom to the left
justification = 1.1,
## adjust grouping (binning) of observations
binwidth = .25
)

6.「微 」调细节:tidyquant::theme_tq() + coord_flip()
scale_fill_tq() +
theme_tq() +
labs(
title = "Raincloud Plot",
subtitle = "Showing the Bi-Modal Distribution of 6 Cylinder Vehicles",
x = "Engine Size (No. of Cylinders)",
y = "Highway Fuel Economy (MPG)",
fill = "Cylinders"
) +
coord_flip()

完整代码「R」
# LIBRARIES ----
library(ggdist)
library(tidyquant)
library(tidyverse)
# DATA -----
mpg
# RAINCLOUD PLOTS ----
# Powerful for visualizing modality of distributions
mpg %>%
filter(cyl %in% c(4, 6, 8)) %>%
ggplot(aes(x = factor(cyl), y = hwy, fill = factor(cyl))) +
# add half-violin from {ggdist} package
ggdist::stat_halfeye(
## custom bandwidth
adjust = 0.5,
## move geom to the right
justification = -.2,
## remove slab interval
.width = 0,
point_colour = NA
) +
geom_boxplot(
width = .12,
## remove outliers
outlier.color = NA,
alpha = 0.5
) +
# Add dot plots from {ggdist} package
ggdist::stat_dots(
## orientation to the left
side = "left",
## move geom to the left
justification = 1.1,
## adjust grouping (binning) of observations
binwidth = .25
) +
# Adjust theme
scale_fill_tq() +
theme_tq() +
labs(
title = "Raincloud Plot",
subtitle = "Showing the Bi-Modal Distribution of 6 Cylinder Vehicles",
x = "Engine Size (No. of Cylinders)",
y = "Highway Fuel Economy (MPG)",
fill = "Cylinders"
) +
coord_flip()
本文介绍了一种数据可视化方法——云雨图,它结合了小提琴图、箱线图及原始数据点,能同时展现数据的概率密度和统计特性。通过R语言及ggdist等包,演示了如何创建云雨图来揭示不同发动机尺寸车辆的高速公路燃油经济性的双峰分布。

421

被折叠的 条评论
为什么被折叠?



