R 向图形中添加回归线

R 向图形中添加回归线,r,ggplot2,R,Ggplot2,我试图在我的绘图中添加一个线性回归模型。我有这个数据框: watershed sqm cfs 3 deerfieldwatershed 1718617392 22703.8851 5 greenwatershed 233458430 1637.4895 6 northwatershed 240348182 3281.9921 8 southwatershed 68031782 867.6428 我现在的代

我试图在我的绘图中添加一个线性回归模型。我有这个数据框:

           watershed        sqm        cfs
3 deerfieldwatershed 1718617392 22703.8851
5     greenwatershed  233458430  1637.4895
6     northwatershed  240348182  3281.9921
8     southwatershed   68031782   867.6428
我现在的代码是:

ggplot(dischargevsarea, aes(x = sqm, y = cfs, color = watershed)) + 
  geom_point(aes(color = watershed), size = 2) + 
  labs(y= "Discharge (cfs)", x = "Area (sq. m)", color = "Watershed") + 
  scale_color_manual(values = c("#BAC4C1", "#37B795", 
                                "#00898F", "#002245"),
                     labels = c("Deerfield", "Green", "North",
                                "South")) + 
  theme_minimal() + 
  geom_smooth(method = "lm", se = FALSE)
当它运行时,会向图例中的点添加一条线,但不会显示在图形上(请参见下图)。我怀疑它是在为每个点分别绘制一条直线,但我希望所有四个点都有一条回归线。我怎样才能得到我想出现的线路?谢谢
你是对的,这是因为你的点被分组在不同的类别中(因为你的第一个
aes
中的
颜色),所以当你调用
geom_smooth
时,它会为每个类别生成一条回归线,在你的例子中,它意味着每个点。所以,这就是为什么你没有一条回归线

为获得所有点的回归线,您可以通过<代码>颜色< <代码> >仅在<代码> AES <代码> <代码> GeoMoPosie >(或者可以使用<代码>继承> AES=false <代码> <代码> GEOMSOLIST/<代码>,以指示<代码> GGPrP>代码>不考虑以前的映射参数,并用新的参数填充它)。p> 要在图表上显示方程式(基于您在评论中的问题),您可以使用

ggpmisc
包中的
stat\u poly\u eq
函数(这里有一篇描述其用法的SO帖子:):

库(ggplot2)
图书馆(ggpmisc)
ggplot(df,aes(x=sqm,y=cfs))+
实验室(y=“排放(cfs)”,x=“面积(平方米)”,color=“流域”)+
比例颜色手册(值=c(“#BAC4C1”),“#37B795”,
"00898F","00245",,
标签=c(“迪尔菲尔德”、“绿色”、“北部”,
“南”)+
theme_minimal()+
geom_平滑(method=“lm”,se=FALSE,公式=y~x)+
stat_poly_eq(公式=y~x,aes(标签=粘贴(…eq.label.,…rr.label.,sep=“~~”)),
parse=TRUE)+
几何点(aes(颜色=分水岭))

数据

结构(列表(流域=c(“deerfieldwatershed”、“绿色流域”),
“北分水岭”、“南分水岭”,sqm=c(1718617392L、233458430L、,
240348182L,68031782L),cfs=c(22703.88511637.48953281.9921,
867.6428),row.names=c(NA,-4L),class=c(“data.table”,“data.frame”
),.internal.selfref=)

太好了,非常感谢!现在如果我想把这条线的方程加到图上,我该怎么做呢?