如何将构面标签移动到图表顶部?

Posted

技术标签:

【中文标题】如何将构面标签移动到图表顶部?【英文标题】:How can I move facet labels to top of my graph? 【发布时间】:2012-03-11 03:54:21 【问题描述】:

我可以像这样创建一个多面图,其中 3 个图垂直堆叠

ggplot(iris, aes(Petal.Length)) + stat_bin() + facet_grid(Species ~ .)

是否可以将标签移动到每个图表的顶部,就像我使用 facet_grid(. ~ Species) 完成水平堆叠一样?

我想要这个的原因是我的图是长时间序列图,所以我想要每个图的全宽,但是每个图的标签(本质上用作解释方面的标题)太长而无法容纳在绘图右侧的小标签区域中。

【问题讨论】:

【参考方案1】:

是的。使用facet_wrap 而不是facet_grid 并确保同时指定参数ncol=1

ggplot(iris, aes(Petal.Length)) + stat_bin() + facet_wrap(~Species, ncol=1)

【讨论】:

y 轴每次最多有 25 个。是否实际上具有将轴设置为每个方面的适当范围的原始行为? 添加facet_wrap(~Species, ncol=1,scales="free_y")【参考方案2】:

试试这个:

ggplot(iris, aes(Petal.Length)) + stat_bin() + facet_wrap(~Species,nrow = 3)

【讨论】:

@Andrie 至少我们做了一点不同:我设置nrow = 3,而你设置ncol = 1 哇不知道。漂亮的+1 非常好。我想我更喜欢ncol=1,因为这样我就不必测量有多少行了。 看起来另一种解决方案是使用geom_text() 添加标签,因此它不会占用绘图空间。但是接下来我必须弄清楚如何完全删除构面标签框。 @KenWilliams opts(strip.background = theme_blank())

以上是关于如何将构面标签移动到图表顶部?的主要内容,如果未能解决你的问题,请参考以下文章