下面的图根据齿轮的数量产生三条单独的线。我想再添加一条线,表示三个类别的平均值,以便图总共有四条线。
ggplot(mtcars) + geom_line(aes(x=mpg, y=drat, colour=factor(gear)))
lf5gs5x21#
我假设你正在寻找geom_smooth。你可以用method = ...改变底层的回归方法。注意:我已经把你的x/y美学移到了ggplot的主调用中。
geom_smooth
method = ...
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
v8wbuo2f2#
添加
+ stat_summary(aes(x=mpg, y = drat), fun = mean, geom = "line")
你的阴谋应该可以了在这个例子中,结果非常难看,因为它只计算了在特定y值 * 处测量的y值的平均值,而不是每组线性插值线的值......对于每个组都在每个x值处表示的数据集,它会工作得更好......如果“趋势线”是指包括所有组的线性回归线,那么@tjebo的答案method = "lm"会更合适。
method = "lm"
2条答案
按热度按时间lf5gs5x21#
我假设你正在寻找
geom_smooth
。你可以用method = ...
改变底层的回归方法。注意:我已经把你的x/y美学移到了ggplot的主调用中。
创建于2023-04-09使用reprex v2.0.2
v8wbuo2f2#
添加
你的阴谋应该可以了
在这个例子中,结果非常难看,因为它只计算了在特定y值 * 处测量的y值的平均值,而不是每组线性插值线的值......对于每个组都在每个x值处表示的数据集,它会工作得更好......
如果“趋势线”是指包括所有组的线性回归线,那么@tjebo的答案
method = "lm"
会更合适。