使用facets和翻转坐标删除ggplot boxplot中未使用的级别?

时间:2015-07-23 10:28:45

标签: r ggplot2 boxplot facet

在R中,我试图在ggplot中制作一个带有翻转坐标(水平框)的箱形图,这些坐标是使用构面分组的。当我在没有翻转坐标的情况下构建它时,ggplot会在scale =“free”的facet中删除未使用的因子级别,但是当我还包括coord_flip时,这似乎不起作用。

最小例子:

library('ggplot2')
dat <- data.frame(RESP=rnorm(60), GROUP=rep(letters[1:6],each=10), FACET=c(rep(LETTERS[1:2],each=25),rep(LETTERS[3],10)))

正常分面的箱形图没有丢弃未使用的级别,但是不是我想要的:

ggplot(dat, aes(x=GROUP, y=RESP)) + 
  geom_boxplot() + 
  facet_grid(.~FACET)

降低等级的普通刻面箱图也可以正常工作(不是我想要的):

ggplot(dat, aes(x=GROUP, y=RESP)) + 
  geom_boxplot() + 
  facet_grid(.~FACET, scales="free", space="free")

带有翻转坐标(我想要的)的刻面箱图不会丢弃未使用的级别:

ggplot(dat, aes(x=GROUP, y=RESP)) + 
  geom_boxplot() + 
  facet_grid(FACET~., scales="free", space="free") + 
  coord_flip()

重新安排ggplot命令的顺序并不能解决问题。我怀疑答案是对FACET的一些调整〜。公式,但无法解决它。

1 个答案:

答案 0 :(得分:4)