Ggplot 图:按 geom_point 的颜色点和按组的颜色趋势线

问题描述

我正在尝试为原始数据点着色,但是当我已经按组定义颜色时,我似乎无法找到有关如何执行此操作的信息。

数据:

data = read.csv('TotMaxSize.csv')
structure(list(Column1 = 1:6,yrblock15 = c(2004L,2004L,2004L),circleID = 1:6,ThreeYearRain = c(748.9863518,744.4805429,748.6081666,747.5941999,746.3382951,740.9514718
),time = c(5.270172597,4.270172617,3.348596103,3.019112219,2.905252281,2.773856447),claylake = c(0,0.01,0),spinsandplain = c(99.53,90.39,50.7,63.8,73.65,82.73),TotMaxSize = c(2058.592458,936.2305886,1652.692998,2162.200459,1062.143104,1863.051545)),row.names = c(NA,6L),class = "data.frame")

加载的包:

library(ggplot2);library(lme4);library(ggeffects);library(dplyr) 

型号:

fit <- lmer(TotMaxSize~log(time)+spinsandplain+ThreeYearRain+claylake+ThreeYearRain*log(time)+(1|circleID),na.action=na.fail,data=data,REML=FALSE)

剧情:

mydf <- ggpredict(fit,terms = c("time[exp]","ThreeYearRain[647.6448,1198.882,1934.894]")) 
mydf1 <- rename(mydf,"time" = x,"TotMaxSize" = predicted)


ggplot(mydf1,aes(x = time,y = TotMaxSize,colour = group)) +
  geom_point(data = data,colour = "black")+
  stat_smooth(method = "lm",se = FALSE)+
  scale_colour_manual(values=c("skyblue2","dodgerblue3","darkblue"))+
  xlim(0,10)+ylim(0,7000)+
  xlab("time")+ylab("Max fire size")

它最终看起来像这样:

enter image description here

有没有办法通过变量“ThreeYearRain”为geom_point(渐变)着色? 我一直收到与我读过的其他线程类似的错误

"Scale for 'colour' is already present. Adding another scale for 'colour',which will replace the existing scale."

解决方法

您已经定义了两次颜色:一次是在 aes() 中,一次是在 geom_point() 中。