如何在ggscatter中按组着色散点并保留单条回归线
解决方案
直接调整代码逻辑,把分组着色的散点和整体回归线分开处理:
library(ggpubr) df <- mtcars ggscatter(df, x = "wt", y = "mpg", color = "cyl", palette = "jco", # 散点按cyl分组着色、设置形状 shape = "cyl" ) + stat_smooth(method = "lm", se = TRUE, color = "black") + # 添加基于全部数据的回归线及置信区间 stat_cor(label.x = 3) # 添加整体数据的相关系数(若需保留分组系数,可重新加上`aes(color = cyl)`)
关键改动说明:
- 移除原代码中的
add = "reg.line"和conf.int = TRUE:ggpubr自带的add="reg.line"会继承color="cyl"的分组规则,自动生成多条回归线 - 改用
stat_smooth(method = "lm", se = TRUE)手动添加回归线:该函数默认使用全部数据拟合,不继承分组美学,se=TRUE对应原代码的置信区间需求 - 若不需要分组的相关系数,移除
stat_cor中的aes(color = cyl),即可显示整体数据的相关系数;如果仍需保留分组系数,可保留该参数,不影响整体回归线的展示
内容的提问来源于stack exchange,提问作者littleworth
相关产品推荐
相关产品推荐

