减少 ggplot2 中多图中的列高

Reduce column height in a multiple plot in ggplot2

我可以创建 3 个图,然后使用以下代码将它们合并到同一个图中:

p1 <- qplot(mpg, wt, data=mtcars)
p2 <- p1
p3 <- p1 + theme(axis.text.y=element_blank(), axis.title.y=element_blank())


plot_grid(p1,p2,p3, align = "v",ncol=3)

然后我得到:

并且想知道是否有人知道是否可以在多图中独立地降低每列的列高比?并得到类似的东西:

利用 patchwork 一个选项来实现您想要的结果可能如下所示:

library(ggplot2)
library(patchwork)

p1 <- qplot(mpg, wt, data = mtcars)
p2 <- p1
p3 <- p1 + theme(axis.text.y = element_blank(), axis.title.y = element_blank())

pp1 <- p1
pp2 <- plot_spacer() / p2 + plot_layout(heights = c(1, 3))
pp3 <- plot_spacer() / p3 + plot_layout(heights = c(1, 1))

pp1 + pp2 + pp3

另一种使用拼凑的方法:

library(ggplot2)
library(patchwork)


p1 <- qplot(mpg, wt, data=mtcars)
p2 <- p1
p3 <- p1 + theme(axis.text.y=element_blank(), axis.title.y=element_blank())

design <- 
  "1##
   12#
   123"

p1 + p2 + p3 + plot_layout(design = design)

reprex package (v2.0.0)

于 2021-08-21 创建