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=)
太好了,非常感谢!现在如果我想把这条线的方程加到图上,我该怎么做呢?