在ggplot2中绘制没有交互的线性回归线

luc*_*ano 6 regression r ggplot2

此代码在ggplot2中绘制了具有交互的回归线:

library(ggplot2)
ggplot(mtcars, aes(hp, mpg, group = cyl)) + geom_point() + stat_smooth(method = "lm")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

没有相互作用的线可以用stat_smooth

Did*_*rts 7

解决方法是在模型之外制作模型ggplot().然后对此模型进行预测并将结果添加到原始数据框.这将添加列fit,lwrupr.

mod<-lm(mpg~factor(cyl)+hp,data=mtcars)
mtcars<-cbind(mtcars,predict(mod,interval="confidence"))
Run Code Online (Sandbox Code Playgroud)

现在你可以使用geom_line()fity添加三个回归线,geom_ribbon()lwrupr添加置信区间.

ggplot(mtcars, aes(hp, mpg, group = cyl)) + geom_point() +
      geom_line(aes(y=fit))+geom_ribbon(aes(ymin=lwr,ymax=upr),alpha=0.4)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述