如何在 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() 

ggplot2 中的水平小提琴图

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 ) 

ggplot2 中的小提琴图

每个团队的中位分值由每个小提琴图内的小圆圈表示。

注意:要增加圆的大小,只需增加stat_summary()函数中大小参数的值即可。

其他资源

以下教程解释了如何在 ggplot2 中执行其他常见任务:

如何更改ggplot2中的字体大小
如何删除ggplot2中的图例
如何在ggplot2中旋转轴标签

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注