首页 > 解决方案 > 如何让公共中心 y 轴标签延伸到底部图形?

问题描述

使用 ggplot,我制作了三个图表,我想使用包 patchworks 以打包的方式(彼此叠加)组合它们。

这很容易通过键入:

graph1/graph2/graph3

但是,我遇到的问题是,对于这三个图,我有一个共同的 y 轴,我自然希望将其放置在中央图上(因此,当我制作图 2 时,我只为图 2 创建了 y 轴标签ggplot 中的图形)。这个 y 轴标签文本相当长。因此,我想将它扩展到“超出其他图表的边界”。但是,我的结果如下图所示。

在此处输入图像描述

可以看出,y轴标签允许延伸到顶图但不允许延伸到底图(这里将多余的标签文本简单地去掉,就好像底图放在了文本的顶部一样)。

如何让我的 y 轴标签也延伸到底部图表中?事后简单地更改图片的尺寸以使中心图足够大以容纳标签不是一种选择(然后该图将太大而无法放在一页上)。

标签: rggplot2patchwork

解决方案


这目前仍然是拼凑而成的一项长期要求的功能(请参阅此讨论)。有几个解决方法,低于我会做的。我会将实验室标题作为情节拼接给其他人。

library(ggplot2)
library(patchwork)
ls_p <- rep(list(ggplot(mtcars, aes(mpg, disp)) +geom_point()), 3)
glob_lab <- "This long label which is too small for one plot"

p_lab <- 
  ggplot() + 
  annotate(geom = "text", x = 1, y = 1, label = glob_lab, angle = 90) +
  coord_cartesian(clip = "off")+
  theme_void()

(p_lab | wrap_plots(ls_p, nrow = 3)) +
  plot_layout(widths = c(.1, 1))

reprex 包于 2021-03-24 创建(v1.0.0)


推荐阅读