如何在同一张图中同时绘制分组回归线和全体数据汇总回归线?
你只需要在现有代码基础上新增一层geom_smooth,显式指定group = 1覆盖全局的site分组规则,同时设置颜色为黑色即可,修改后的代码如下:
plotsr.sp <- ggplot(data = result.sp.melt, aes(x = belt, y = sr, group = site, color = site)) + geom_smooth(method = "lm", se = F) + # 新增全量汇总回归线 geom_smooth(aes(group = 1), method = "lm", se = F, color = "black") + scale_x_discrete(labels = c("Low","Mid","High"))
原理说明
默认情况下ggplot的图层会继承全局定义的美学映射,你之前在全局aes里设置了group = site,所以所有默认图层都会按site分组拟合回归线。新增的geom_smooth里设置aes(group = 1)就是告诉ggplot这一层不需要按site分组,把所有样本作为同一个整体拟合回归,再手动指定color为黑色就达到你要的效果了。
如果想让代码逻辑更清晰,也可以把分组和颜色的映射放到分组回归线的图层私有配置里,避免全局映射的影响:
plotsr.sp <- ggplot(data = result.sp.melt, aes(x = belt, y = sr)) + # 按site分组的回归线 geom_smooth(aes(group = site, color = site), method = "lm", se = F) + # 全量汇总回归线 geom_smooth(method = "lm", se = F, color = "black") + scale_x_discrete(labels = c("Low","Mid","High"))
内容的提问来源于stack exchange,提问作者merlin song
相关产品推荐
相关产品推荐

