【问题标题】:How to decrease spacing between subplots如何减少子图之间的间距
【发布时间】:2021-11-27 17:43:00
【问题描述】:

我有以下情节,我使用 ggplot2 和拼凑而成的面板情节。 每一行都对不同的目标数据集进行预测,所以我认为它可能是 为每一行设置一个标题很有帮助,我刚刚用一个空的ggplot + annotate() 创建了这个标题 这是它目前的样子:

示例代码

library(ggplot2)
library(patchwork)
p1 <- ggplot(mtcars) +
  geom_point(aes(mpg, disp)) +
  ggtitle("Plot 1")

p2 <- ggplot(mtcars) +
  geom_boxplot(aes(gear, disp, group = gear)) +
  ggtitle("Plot 2")

p3 <- ggplot(mtcars) +
  geom_point(aes(hp, wt, colour = mpg)) +
  ggtitle("Plot 3")

p4 <- ggplot(mtcars) +
  geom_bar(aes(gear)) +
  facet_wrap(~cyl) +
  ggtitle("Plot 4")

ggplot() +
  annotate(geom = "text", x = 1, y = 1, label = "Predictions on Dataset 1",size=8) +
  theme_void() -> title1
ggplot() +
  annotate(geom = "text", x = 1, y = 1, label = "Predictions on Dataset 2",size=8) +
  theme_void() -> title2


title1 /
  (p1 | p2) /
  title2 /
  (p3 | p4) +
  plot_annotation(
    tag_levels = list(c("","A.1) Model Name 1", "B.1) Model Name 2", "","A.2) Model Name 1", "B.2) Model Name 2")),
    theme = theme(plot.title = element_text(size = 24))
  ) &
  theme(

  )

问题
如何减少title1title2 与其他地块之间的空间?

期望的输出:

【问题讨论】:

    标签: r ggplot2 plot patchwork


    【解决方案1】:
    title1 / (p1 | p2) /
      title2 / (p3 | p4) +
      plot_layout(heights = c(1,6,1,6)) +
      ....
    

    您可以调整title1title2 中的文本大小,以使它们与其他文本更加一致。这是size = 5

    【讨论】: