如何在ggplot2中按组绘制平均线


您可以使用以下基本语法在 ggplot2 中绘制每组的平均线:

 #calculate mean points value by team
mean_team <- df %>% group_by(team) %>% summarise(mean_pts=mean(points))
 
#create scatterplot of assists vs points with mean line of points by team
ggplot(df, aes(x=assists, y=points)) +
  geom_point(aes(color=team)) +
  geom_hline(data=mean_team, aes(yintercept=mean_pts, col=team))

这个特定的例子创建了助攻与助攻的散点图。可变助攻points ,然后添加一条线来表示按团队变量分组平均分值。

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

示例:在 ggplot2 中绘制每组的平均线

假设我们在 R 中有以下数据框,其中包含来自三个不同球队的篮球运动员的得分和助攻信息:

 #create data frame
df <- data. frame (team=rep(c(' A ', ' B ', ' C '), each= 5 ),
                 assists=c(2, 4, 4, 5, 6, 6, 7, 7,
                           8, 9, 7, 8, 13, 14, 12),
                 dots=c(8, 8, 9, 9, 10, 9, 12, 13,
                          14, 15, 14, 14, 16, 19, 22))

#view data frame
df

   team assists points
1 to 2 8
2 to 4 8
3 to 4 9
4 to 5 9
5 to 6 10
6 B 6 9
7 B 7 12
8 B 7 13
9 B 8 14
10 B 9 15
11 C 7 14
12 C 8 14
13 C 13 16
14 C 14 19
15 C 12 22

我们可以使用以下代码来创建助攻与助攻的散点图。变量。,然后添加一条线来表示按团队变量分组平均值。

 library (dplyr)
library (ggplot2)

#calculate mean points value by team
mean_team <- df %>% group_by(team) %>% summarise(mean_pts=mean(points))
 
#create scatterplot of assists vs points with mean line of points by team
ggplot(df, aes(x=assists, y=points)) +
  geom_point(aes(color=team)) +
  geom_hline(data=mean_team, aes(yintercept=mean_pts, col=team)) 

ggplot 每组平均线

这三行用颜色编码来显示每个团队的平均得分。

我们可以查看我们创建的Mean_Team数据框来查看每个团队的实际平均分值:

 #view mean points value by team
mean_team

`summarise()` ungrouping output (override with `.groups` argument)
# A tibble: 3 x 2
  team mean_pts
      
1 to 8.8
2 B 12.6
3 C 17

从结果我们可以看出:

  • A队球员的平均分值为8.8。
  • B队球员的平均分值为12.6。
  • C队球员的平均分值为17分。

这些值对应于我们创建的散点图 y 轴上的线的位置。

其他资源

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

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

添加评论

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