如何在ggplot中更改facets条纹的大小?

11

有没有办法控制ggplot中facets上的条纹大小?我尝试使用strip.background=element_rect(size=n),但据我所知它实际上没有起作用。这是可能的吗?


5
一个有点不太令人愉快的方法是在去除文本时加入换行符(\n)以增加它们的大小。 - joran
1
element_rect 中,size 指的是边界线的点大小,它实际上并不能帮助您使矩形变得更大或更小。 - Gregor Thomas
1
将图形转换为 ggplotGrob TableGrob,然后查找 strip_ grobs 并修改 height 元素是否可行?我现在没有时间测试,但我知道其他人也会在 grob 层面上进行调整。 - hrbrmstr
1个回答

10

将图表手动转换为gtable让您可以调整strip的高度。

library(ggplot2)
library(gtable)

d <- ggplot(mtcars, aes(x=gear)) + 
            geom_bar(aes(y=gear), stat="identity", position="dodge") +
            facet_wrap(~cyl)

g <- ggplotGrob(d)
g$heights[[3]] = unit(1,"in")

grid.newpage()
grid.draw(g)

谢谢。我是新手 - 我看到一些类似问题中提到了ggplotGrob,但没有显示这个特定的更改,我不确定如何处理它。我会在今天晚些时候尝试并进行调整。 - iod
好的,它能工作,但我不知道为什么。有没有一个好的教程可以教我更多关于如何使用这些gtables的知识?我无法弄清楚它们... - iod
2
很不幸,目前没有教程可供参考,而且gtable的开发人员已经转向新项目。最好的参考资料可能是在这里浏览gtable标签。我开始写了一些文档,但老实说,由于开发人员不接受拉取请求,我失去了动力。 - baptiste
1
需要使用library(grid)来运行grid.newpage()。 - FraNut

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接