如何为geom_smooth中不同分组的拟合线条设置不同颜色?
解决ggplot分组拟合线单独设置颜色的问题
你只需要去掉geom_smooth里手动设置的color = "black"和多余的group=group_var,让拟合线继承全局的color = group_var映射,再通过scale_color_manual自定义每组的颜色即可。这样点和对应分组的拟合线会使用一致的自定义颜色,完美区分Y/N组。
示例代码
data %>% ggplot(aes(ind_var, dep_var, color = group_var)) + geom_point(alpha = 0.5, size = 2) + geom_smooth(method = "lm", size = 0.5) + scale_color_manual(values = c( "Y" = "darkblue", # Y组拟合线和点设为深蓝色 "N" = "darkred" # N组拟合线和点设为深红色 ))
额外说明
如果想让点和拟合线的色调有区分(比如点用亮蓝/亮红,线用深蓝/深红),可以通过降低点的透明度来突出深色拟合线:
data %>% ggplot(aes(ind_var, dep_var, color = group_var)) + geom_point(alpha = 0.3, size = 2) + # 降低点的透明度,让深色拟合线更醒目 geom_smooth(method = "lm", size = 0.5) + scale_color_manual(values = c( "Y" = "darkblue", "N" = "darkred" ))
内容的提问来源于stack exchange,提问作者Jess
相关产品推荐
相关产品推荐

