如何使用 ggplot2 按组绘制回归线


我们可以使用以下语法使用 R 可视化包ggplot2绘制组回归线:

 ggplot(df, aes (x = x_variable, y = y_variable, color = group_variable)) +
  geom_point() +
  geom_smooth(method = " lm ", fill = NA )

本教程提供了如何在实践中使用此功能的快速示例。

示例:使用 ggplot2 按组绘制回归线

假设我们有以下数据集,显示 15 名不同学生的以下三个变量:

  • 学习时数
  • 收到考试成绩
  • 使用的研究技术(A、B 或 C)
 #create dataset
df <- data.frame(hours=c(1, 2, 3, 3, 4, 1, 2, 2, 3, 4, 1, 2, 3, 4, 4),
                 score=c(84, 86, 85, 87, 94, 74, 76, 75, 77, 79, 65, 67, 69, 72, 80),
                 technique= rep (c(' A ', ' B ', ' C '), each = 5 ))

#view dataset
df

   hours technical score
1 1 84 A
2 2 86 A
3 3 85 A
4 3 87 A
5 4 94 A
6 1 74 B
7 2 76 B
8 2 75 B
9 3 77 B
10 4 79 B
11 1 65 C
12 2 67 C
13 3 69 C
14 4 72 C
15 4 80 C

以下代码显示了如何绘制回归线,以捕获三种学习技术中每种技术的学习时间和考试成绩之间的关系:

 #load ggplot2
library (ggplot2)

#create regression lines for all three groups
ggplot(df, aes (x = hours, y = score, color = technique)) +
  geom_point() +
  geom_smooth(method = " lm ", fill = NA )

ggplot2中按组回归线

请注意,在geom_smooth()中,我们使用 method = ‘lm” 来指定线性趋势。

我们还可以使用其他平滑方法,如“glm”、“loess”或“gam”来捕获数据中的非线性趋势。您可以 在此处找到 geom_smooth() 的完整文档。

请注意,我们还可以使用不同的形状来显示三组中每组的考试结果:

 ggplot(df, aes (x = hours, y = score, color = technique, shape = technique)) +
  geom_point() +
  geom_smooth(method = " lm ", fill = NA )

ggplot2 中单个图中的多条回归线

您可以在这里找到更多 ggplot2 教程。

添加评论

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