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

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())

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

如何在 R 中为 ggplot 的每个方面添加 R2?

如何根据 ggplot2 绘制的图上的 y 轴值覆盖构面标签?

如何在剑道图表的顶部而不是底部显示 x 轴值

剑道条形图 - 顶部的系列标签?

如何限制从顶部定位我的标签,但在隐藏导航栏时不让它移动(因为它会调整视图高度)?

R ggplot facet label在y轴标题和y轴刻度标签之间的位置