在ggplot2 / geom_bar中使用group + facet_wrap忽略填充

时间:2013-05-03 09:47:49

标签: r ggplot2

我怀疑我可能在这里错误地使用了组,但我似乎无法理解为什么在下面的示例中忽略了填充颜色。

df <- data.frame(a = factor(c(1,1,2,2,1,2,1,2)), 
                 b = factor(c(1,2,3,4,5,6,7,2)), 
                 c = factor(c(1,2,1,2,1,2,1,2)))
p <- ggplot(df, aes(x=b)) +
  geom_bar(aes(y =  ..density.., group = c, fill=a), binwidth = 1) + 
  facet_wrap(~ c) +
  scale_y_continuous(labels = percent_format()) +
  scale_color_hue()
p

非常感谢任何帮助。 提前致谢, --JT

1 个答案:

答案 0 :(得分:1)

我想我明白你现在的情节。我会做这样的事情:

df <- data.frame(a = c(1,1,2,2,1,2,1,2), 
             b = c(1,2,3,4,5,6,7,2), 
             c = c(1,2,1,2,1,2,1,2))

df <- within(df, { f <- 1 / ave(b, list(c), FUN=length)})
df[, 1:3] <- lapply(df[, 1:3], as.factor)

ggplot(df, aes(x = b)) + geom_bar(stat = "identity", position = "stack", 
           aes(y = f, group = c, fill = a), binwidth = 1) + facet_wrap(~ c) + 
           scale_y_continuous(labels = percent_format())

这给出了情节:

enter image description here