如何将构面标签移动到图表顶部?
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())
以上是关于如何将构面标签移动到图表顶部?的主要内容,如果未能解决你的问题,请参考以下文章
如何根据 ggplot2 绘制的图上的 y 轴值覆盖构面标签?