仅命名构面图中的第一个条形

时间:2014-11-20 19:16:21

标签: r plot ggplot2

我想在为不同类别绘制条形图时减少混乱。也就是说,我使用facets将相同的分类变量与其他分类变量进行比较。

例如,我使用tips中的reshape2数据集:

library(reshape2)
library(ggplot2)
ggplot(tips, aes(x=time)) +
  geom_bar(shape=1) +
  facet_grid(. ~ sex)

结果是: enter image description here

我想要的改变是"晚餐"和"午餐"只出现在"女性"面。我试过了

scale_x_discrete(labels = c("with", "without", "", ""))

但当然没有效果,因为变量time中只有两个类别,那么为什么要在标签向量中使用两个以上的元素呢?如果没有"绘制两个图并将它们组合起来,我怎样才能完成我想要的图形?#34; -workaround?

1 个答案:

答案 0 :(得分:3)

您可以使用ggplot_buildggplot_gtable修改ggplot的组件:

x <- ggplot_gtable(ggplot_build(p))

如果查看str(x),您可以找出更改标签的位置:

x$grobs[[8]]$children$axis$grobs[[2]]$label <- c('', '')
plot(x)

但是,重要的是要注意,如果他们决定更改图的内部结构,这可能不适用于 ggplot2 的未来版本。

enter image description here