R语言 如何在ggplot2中添加每个因子或分类变量的不同线的平均趋势线

doinxwow  于 2023-04-18  发布在  其他
关注(0)|答案(2)|浏览(185)

下面的图根据齿轮的数量产生三条单独的线。我想再添加一条线,表示三个类别的平均值,以便图总共有四条线。

ggplot(mtcars) + geom_line(aes(x=mpg, y=drat, colour=factor(gear)))

lf5gs5x2

lf5gs5x21#

我假设你正在寻找geom_smooth。你可以用method = ...改变底层的回归方法。
注意:我已经把你的x/y美学移到了ggplot的主调用中。

library(ggplot2)
ggplot(mtcars, aes(x=mpg, y=drat)) + 
  geom_line(aes(colour=factor(gear))) +
  geom_smooth()
#> `geom_smooth()` using method = 'loess' and formula = 'y ~ x'

创建于2023-04-09使用reprex v2.0.2

v8wbuo2f

v8wbuo2f2#

添加

+ stat_summary(aes(x=mpg, y = drat), fun = mean, geom = "line")

你的阴谋应该可以了
在这个例子中,结果非常难看,因为它只计算了在特定y值 * 处测量的y值的平均值,而不是每组线性插值线的值......对于每个组都在每个x值处表示的数据集,它会工作得更好......
如果“趋势线”是指包括所有组的线性回归线,那么@tjebo的答案method = "lm"会更合适。

相关问题