何时在 ggplot2 图中使用 stat=”identity”


使用ggplot2中的geom_bar()函数创建条形图有两种常见方法:

方法一:使用geom_bar()

 ggplot(df, aes(x)) +
  geom_bar()

默认情况下, geom_bar()将简单地计算变量 x 的每个唯一值的出现次数,并使用条形图显示计数。

方法2:使用geom_bar(stat=”identity”)

 ggplot(df, aes(x, y)) +
  geom_bar(stat=" identity ")

如果您向geom_bar()提供stat=”identity”参数,那么您就是在告诉 R 计算变量 y 的总和,按变量 x 分组并使用条形图显示总和。

以下示例使用 R 中的以下数据框说明了这两种方法之间的差异,该数据框显示了来自不同球队的篮球运动员的得分:

 #create data frame
df <- data. frame (team=rep(c(' A ', ' B ', ' C '), each= 4 ),
                 points=c(3, 5, 5, 6, 5, 7, 7, 8, 9, 9, 9, 8))

#view data frame
df

   team points
1 to 3
2 to 5
3 to 5
4 to 6
5 B 5
6 B 7
7 B 7
8 B 8
9 C 9
10 C 9
11 C 9
12 C 8

示例 1:使用 geom_bar()

以下代码演示如何使用geom_bar()函数创建一个条形图,显示团队列中每个唯一值的计数:

 library (ggplot2)

#create bar chart to visualize occurrence of each unique value in team column
ggplot(df, aes(team)) +
  geom_bar()

X 轴显示Team列中的唯一值,Y 轴显示每个唯一值出现的次数。

由于每个唯一值出现 4 次,因此图中每个条形的高度为 4。

示例 2:使用 geom_bar(stat=”identity”)

以下代码展示了如何使用带有stat=”identity”参数的geom_bar()函数来创建一个条形图,该条形图显示列中的值的总和,并按团队分组:

 library (ggplot2)

#create bar chart to visualize sum of points, grouped by team
ggplot(df, aes(team, points)) +
  geom_bar(stat=" identity ")

ggplot2 中带有 stat="identity" 的 geom_bar

X 轴显示球队列中的唯一值,Y 轴显示每个球队的积分列中的值总和。

例如:

  • A队的积分总和为19分。
  • B队的总分是27分。
  • C队的总分是35分。

通过在geom_bar()函数中使用stat=”identity” ,我们可以显示数据框中特定变量值的总和,而不是计数。

注意:为了使stat=”identity”正常工作,您必须在aes()参数中同时提供 x 变量和 ay 变量。

其他资源

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

如何调整ggplot2中条形图之间的间距
如何从 ggplot2 图中删除 NA
如何更改ggplot2中堆积条形图的条形颜色

添加评论

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