我想在为不同类别绘制条形图时减少混乱。也就是说,我使用facets将相同的分类变量与其他分类变量进行比较。
例如,我使用tips
中的reshape2
数据集:
library(reshape2)
library(ggplot2)
ggplot(tips, aes(x=time)) +
geom_bar(shape=1) +
facet_grid(. ~ sex)
结果是:
我想要的改变是"晚餐"和"午餐"只出现在"女性"面。我试过了
scale_x_discrete(labels = c("with", "without", "", ""))
但当然没有效果,因为变量time
中只有两个类别,那么为什么要在标签向量中使用两个以上的元素呢?如果没有"绘制两个图并将它们组合起来,我怎样才能完成我想要的图形?#34; -workaround?
答案 0 :(得分:3)
您可以使用ggplot_build
和ggplot_gtable
修改ggplot的组件:
x <- ggplot_gtable(ggplot_build(p))
如果查看str(x)
,您可以找出更改标签的位置:
x$grobs[[8]]$children$axis$grobs[[2]]$label <- c('', '')
plot(x)
但是,重要的是要注意,如果他们决定更改图的内部结构,这可能不适用于 ggplot2 的未来版本。