在同一图表中为两个散点图指定颜色

时间:2017-03-11 12:32:31

标签: r plot ggplot2

下面我们看到一个带有两个图的图表。我希望每个图中的系列S1具有相同的颜色。 enter image description here

然而,似乎颜色是按字母顺序归属的。

我正在使用的代码如下:

plot1<-ggplot(data=dfp)+
  geom_point(aes(x=Save,y=Obsdata,colour="S1"))+
  geom_point(aes(x=Save,y=BiasCorrected,colour="S2"))+
  xlab("X")+ylab("Y")+
  scale_color_discrete(name="")+
  theme(legend.position="bottom")

plot2<-ggplot(data=dfp)+
  geom_point(aes(x=Save,y=SModel, colour="R3"))+
  geom_point(aes(x=Save,y=Obsdata,colour="S1"))+
  xlab("X")+ylab("Y")+
  scale_color_discrete(name="")+
  theme(legend.position="bottom")

grid.arrange(plot1, plot2, ncol=2)

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:2)

您可以指定手动调色板,如下所示:

df <- data.frame(x=runif(90), y=runif(90), col=gl(3,30,labels=LETTERS[1:3]), fac=gl(2,45))
library(ggplot2)
p1 <- ggplot(df[df$fac==1,], aes(x,y,color=col)) + geom_point()
p2 <- ggplot(df[df$fac==2,], aes(x,y,color=col)) + geom_point()
pal <- list(scale_color_manual(values = c("A"="red", "B"="blue", "C"="darkgreen")))
gridExtra::grid.arrange(p1 + pal, p2 + pal, ncol = 2)

另请注意分面选项ggplot(df, aes(x,y,color=col)) + geom_point() + facet_wrap(~fac)