如何用ggplot绘制回归线?

Pet*_*ter 5 plot regression r

我正在尝试将两条回归线放入同一图。我可以通过使用下面的代码来做到这一点,但是使用相同的颜色:

model1 <- glm(species~logarea, family=poisson, data=fish)
model2 <- glm.nb(species~logarea, data=fish)

plot(species~logarea,data=fish)
lines(fitted(model1)[order(logarea)]~sort(logarea),data=fish)
lines(fitted(model2)[order(logarea)]~sort(logarea),data=fish)
Run Code Online (Sandbox Code Playgroud)

我正在考虑使用ggplot复制上面的绘图,以便可以显示具有不同颜色的不同线条。但是我不知道该怎么做。

我只完成了绘制散点图的第一步,但是不知道如何在其上添加线。

ggplot(fish,aes(fish$logarea,fish$SPECIES))+geom_point()
Run Code Online (Sandbox Code Playgroud)

我进行了一些搜索,我了解可以使用geom_smooth(method =“ glm”)生成回归线。但似乎它不是基于我建立的模型。

有人能对此有所启示吗?

非常感谢。

小智 5

只需添加geom_line(aes(y=fitted_datas)),例如这样:

data("mtcars")
library(ggplot2)
model <- glm(mpg~hp, family=poisson, data=mtcars)
ggplot(mtcars,aes(hp,mpg))+geom_point()+geom_line(aes(y=fitted(model)))
Run Code Online (Sandbox Code Playgroud)

结果:

在此处输入图片说明