删除facet分组变量中没有数据的因子

时间:2017-01-13 16:01:15

标签: r ggplot2

我有以下数据:

data <- data.frame(x = letters[1:6], 
                   group = rep(letters[1:2], each = 3), 
                   y = 1:6)

  x group y
1 a     a 1
2 b     a 2
3 c     a 3
4 d     b 4
5 e     b 5
6 f     b 6

我想绘制y ~ x并使用ggplot2分组成小平面。

ggplot(data, aes(x, y)) + 
  geom_bar(stat = "identity") + 
  facet_grid(group ~ .)

enter image description here

问题是某些元组(x; group)不存在于我的数据中(例如,x = a && group = b没有数据),但它们保存在两个方面的x轴上所以我想删除它们,然后在各个组中缺少因子时删除构面中的空白区域。

我认为scales = "free_x" or drop = TRUE可以做到这一点,但我无法做到。

任何帮助将不胜感激,谢谢!

1 个答案:

答案 0 :(得分:3)

使用facet_wrap代替

ggplot(data, aes(x, y)) + 
     geom_col() + 
     facet_wrap(~group, scales = 'free', nrow = 2, strip.position = 'right')

还要注意geom_col作为使用identity

的替代方法