下面我们看到一个带有两个图的图表。我希望每个图中的系列S1具有相同的颜色。
然而,似乎颜色是按字母顺序归属的。
我正在使用的代码如下:
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)
任何帮助都将不胜感激。
答案 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)
。