如何在 ggplot2 中按组创建直方图(带有示例)


您可以使用以下基本语法在 ggplot2 中创建分组直方图:

 ggplot(df, aes(x=values_var, fill=group_var)) +
  geom_histogram(color=' black ', alpha= 0.4 , position=' identity ') +
  scale_fill_manual(values=c(' red ', ' blue ', ' purple '))

此特定示例创建了一个具有红色、蓝色和紫色三个重叠直方图的图。

以下示例展示了如何在实践中使用此语法。

示例:在 ggplot2 中按组创建直方图

假设我们在 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

我们可以使用以下代码创建直方图,显示三支球队各自得分的分布:

 library (ggplot2)

#create histogram by team
ggplot(df, aes(x=points, fill=team)) +
  geom_histogram(color=' black ', alpha= 0.4 , position=' identity ') +
  scale_fill_manual(values=c(' red ', ' blue ', ' purple ')) 

三个柱状图代表了每支球队球员的得分分布。

图右侧的图例显示了每个团队对应的颜色。

请注意,颜色参数指定每个直方图中条形的轮廓颜色,而alpha参数指定用于条形的透明度(介于 0 和 1 之间)。

通过将alpha值设置为小于 1,我们可以看到直方图之间的重叠条。

请随意使用labs()函数修改图中的标签并选择适合您风格的ggplot2 主题

 library (ggplot2)

#create histogram by team
ggplot(df, aes(x=points, fill=team)) +
  geom_histogram(color=' black ', alpha= 0.4 , position=' identity ') +
  scale_fill_manual(values=c(' red ', ' blue ', ' purple ')) +
  labs(fill=' Team ', x=' Points Scored ', y=' Count ', title=' Points Scored by Team ') +
  theme_classic() 

ggplot2 按组的直方图

其他资源

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

如何在 R 中创建相对频率直方图
如何在 R 中的单个图中绘制多个箱线图
如何在R中绘制多条线

添加评论

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