ggplot scale_color_manual 被忽略

dor*_*thy 5 r ggplot2

因此,我尝试将两组数据绘制到一个图上:一组(BATH geom_text)显示 4 个模型的测量值,另一组(geom_points)显示 77 个不同用户的测量值。

preBATH<- monophs_allcoded %>%
filter(class == 'BATH') %>%
  group_by(user, model)%>%
  summarize(mean_pre_f1 = mean(f1_scaled_pre), mean_post_f1 = mean(f1_scaled_post), mean_pre_f2 = mean(f2_scaled_pre), mean_post_f2= mean(f2_scaled_post), model_f1 = mean(f1avg_scaledMODEL), model_f2 = mean(f2avg_scaledMODEL))%>%
  group_by(user) %>%
  ggplot() +
  geom_text(aes(x= model_f2, y = model_f1, label = 'BATH', color=model))+
  geom_point(aes(x= mean_pre_f2, y = mean_pre_f1, color =user))+
  scale_color_manual(values=allcolors)+
  guides(colour = guide_legend(ncol = 1)) +
  expand_limits(x = c(0,2000)) +
  expand_limits(y = c(0,600))  +
   xlab("Lobanov-normalized and scaled f2")+
  ylab("Lobanov-normalized and scaled f1")

preBATH <- preBATH + scale_y_reverse()
preBATH <- preBATH + scale_x_reverse()
Run Code Online (Sandbox Code Playgroud)

ggplot preBATH 的输出

理想情况下,我希望每组测量都有两个单独的颜色美学映射。据我所知, ggplot 不允许这样做。我想出了一个解决方法,通过生成一组颜色并将前四种颜色指定为我想要用于模型测量的颜色 ( allcolors) 并在此行中手动指定颜色;

 scale_color_manual(values=allcolors)+
Run Code Online (Sandbox Code Playgroud)

然而,ggplot 似乎忽略了这个命令。我尝试过scale_fill_manual但没有运气。对我所缺少的有什么想法吗?