重置每个面ggplot2 R中的颜色

时间:2017-11-24 02:05:44

标签: r ggplot2

我有三个变量的频率计数,并希望在饼图中显示频率计数。我尝试了ggplot并使用了以下代码:

library(ggplot2)
df = data.frame(var = rep(c('a','b','c'),each = 3),
            class = letters[1:9],
            count = rep(1:3, 3))

ggplot(df, aes(x = '', y = count, fill = class)) + 
  geom_bar(width = 0.5, stat = 'identity') + 
  coord_polar('y', start = 10) + facet_wrap(~var) + 
  theme(legend.position = 'none')

我得到了以下图表: enter image description here

但是,我想要这样的事情:

enter image description here

如何重置每个面板中的颜色?

1 个答案:

答案 0 :(得分:3)

你必须在每个方面引入一个相同的虚拟变量:

df = data.frame(var = rep(c('a','b','c'),each = 3),
                class = letters[1:9],
                dummy = rep(letters[1:3], 3),
                count = rep(1:3, 3))

ggplot(df, aes(x = '', y = count, fill = dummy)) + 
  geom_bar(width = 0.5, stat = 'identity') + 
  coord_polar('y', start = 10) + facet_wrap(~var)

enter image description here

我删除了theme(legend.position = 'none')行,因此情节实际上就像你制作的那样。