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

13

我可以像这样创建一个分面绘图,其中有 3 个图表 垂直 堆叠:

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

有没有可能将每个图表的标签移动到顶部,就像使用facet_grid(. ~ Species)进行水平堆叠时一样?

我希望这样做的原因是我的绘图是长时间序列图,因此我希望每个图的宽度都很大,但是每个图的标签(实际上起到解释方面的标题作用)太长了,无法适应绘图右侧的小标签区域。

2个回答

14

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

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

这里输入图像描述


这里y轴每次最大为25。有没有实际设置每个facet的正确范围来保持轴的原始行为的方法? - Gildas
添加 facet_wrap(~Species, ncol=1,scales="free_y") - baibo

4

试试这个:

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

enter image description here


1
@Andrie 至少我们做了一点不同:我设置了 nrow = 3 而你设置了 ncol = 1 - joran
哇,我不知道那个。相当聪明 +1 - Tyler Rinker
非常好。我认为我更喜欢ncol=1,因为这样我就不必测量有多少行了。 - Ken Williams
看起来另一个解决方案是使用geom_text()添加标签,这样它就不会占用绘图空间。但是我还需要想办法彻底删除分面标签框。 - Ken Williams
1
@KenWilliams opts(strip.background = theme_blank()) - baptiste

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