根据拟合的坡度值更改geom_smooth的颜色

时间:2018-11-02 14:14:29

标签: r ggplot2

我正在做一个演讲用的人物,并且想做些奇怪的事情以便于演示。我有45个不同的组,我想显示每组的斜率/截距的变化(我正在使用混合效应模型分析实际模型)。

我想根据基于geom_smooth的斜率拟合的发散连续配色方案为我的geom_smooth(method =“ lm”,se = FALSE)线着色。我不知道如何将连续的配色方案与因素混合在一起。这是我要拟合的数据的可复制示例。

set.seed(9)
groups <- c(1:45)
family=as.factor(rep(groups, times=10))

x=abs(rnorm(450, mean=5, sd=8))
e=rnorm(450, mean=0, sd=3)
y=0.4+(-0.2*x)+e
df=data.frame(family, x, y)


ggplot(df, aes(x=x, y=y, colour=family))+
   geom_point()+
   geom_smooth(method="lm", se=FALSE)+
   theme_classic()+
   theme(legend.position="null")

1 个答案:

答案 0 :(得分:1)

首先,如果要渐变颜色,应将family变量更改为数字数据类型。然后,您可以将任何渐变调色板传递给scale_color_gradient(),如下所示:

ggplot(df, aes(x=x, y=y, color=as.numeric(family)))+
  geom_point()+
  geom_smooth(method="lm", se=FALSE)+
  scale_color_gradient(low = "white", high = "red") +
  theme_classic()+
  theme(legend.position="null")

enter image description here