如何在 ggplot2 中创建小提琴图(带有示例)
您可以使用以下方法在 ggplot2 中创建小提琴图:
方法 1:按组创建小提琴图
ggplot(df, aes(x=group_var, y=values_var, fill=group_var)) +
geom_violin() +
方法2:按组创建水平小提琴路径
ggplot(df, aes(x=group_var, y=values_var, fill=group_var)) +
geom_violin() +
coordinate_flip()
方法 3:按组创建小提琴图并显示中值
ggplot(df, aes(x=group_var, y=values_var, fill=group_var)) +
geom_violin() +
stat_summary(fun=median, geom=' point ', size= 2 )
以下示例展示了如何在 R 中使用以下数据框实际使用每种方法:
#make this example reproducible
set. seeds (1)
#create data frame
df <- data. frame (team=rep(c(' A ', ' B ', ' C '), each= 100 ),
points=c(rnorm(100, mean=10),
rnorm(100, mean=15),
rnorm(100, mean=20)))
#view head of data frame
head(df)
team points
1 A 9.373546
2 A 10.183643
3 A 9.164371
4 A 11.595281
5 A 10.329508
6 A 9.179532
注意:我们使用set.seed()函数来确保此示例是可重现的。
示例 1:按组创建小提琴轨迹
我们可以使用以下语法创建小提琴图,显示点变量的分布,并按团队变量分组:
library (ggplot2)
#create violin plot to visualize distribution of points by team
ggplot(df, aes(x=team, y=points, fill=team)) +
geom_violin()
x 轴显示每个团队,y 轴显示每个团队得分的分布。
示例 2:按组创建小提琴轨迹
要创建显示点变量分布(按团队变量分组)的水平小提琴图,只需添加coord_flip()函数:
library (ggplot2)
#create horizontal violin plots to visualize distribution of points by team
ggplot(df, aes(x=team, y=points, fill=team)) +
geom_violin() +
coordinate_flip()
y 轴显示每个团队,x 轴显示每个团队得分的分布。
示例 3:按组创建小提琴图并显示中值
以下代码演示了如何创建小提琴图,该图显示按团队变量分组的点变量的分布,其中中值由圆圈表示:
library (ggplot2)
#create violin plots and display median points value as circle
ggplot(df, aes(x=team, y=points, fill=team)) +
geom_violin() +
stat_summary(fun=median, geom=' point ', size= 2 )
每个团队的中位分值由每个小提琴图内的小圆圈表示。
注意:要增加圆的大小,只需增加stat_summary()函数中大小参数的值即可。
其他资源
以下教程解释了如何在 ggplot2 中执行其他常见任务: