Ggplot2:改变每个方面的填充颜色

Ggplot2: changing fill color in each facet

我有一个三面图,每个面都有几何条。

每个方面代表我在其他图形中使用的变量,其中 ggplot2 默认为它们分配填充颜色。

多面图默认为黑色。我可以更改所有三个面板的填充颜色,但还没有找到如何将每个面板的填充更改为不同的颜色。

这里是代表基本思想的任意数据和代码:

df = data.frame(matrix(data=c(1,3,1,2,3,1,2,3,2,3,1,2,3,1,2,3,
                              1,3,2,1,2,2,2,3,3,3,1,1,1,3,3,2), 
                       ncol=2,byrow=TRUE))
dimnames(df)[[2]] =c("x","y")

dodgebars <- 
  ggplot(data = df,aes(factor(y),fill=factor(x))) +
  geom_bar(aes(group=factor(x)),
           position="dodge")

facetedbars <- 
  ggplot(data = df, aes(factor(y))) +
  geom_bar(aes(group=x)) +
  facet_grid(~x)

每个面的颜色如何与其在 "dodgebars?"

中的填充覆盖相匹配

映射分面变量以填充颜色。然后,每个方面都有不同的条形颜色:

facetedbars + aes(fill = as.factor(x))