2

我制作了一系列要在同一页面上打印的图。

主图dotplot_summary是 中图的摘要dotplots_indiv <- list(p1, p2, p3)

我希望第一个图与第二行的图大小相同,但我不知道如何。

我的代表在这里:https ://pastebin.com/wjhmSFiB

p_indiv <- wrap_plots(dotplots_indiv) 
patchwork <- (dotplot/p_indiv) + plot_layout(nrow = 2, widths = c(1, 3)

我正在考虑添加绘图间隔,但可以放在下排的绘图数量是可变的。

谢谢。

在此处输入图像描述

4

1 回答 1

2

我无法使用您共享的数据重现该问题,因为它给出了错误,但我画了一个示例。您可以使用该layout选项来wrap_plots()定义这样的矩阵样式(我使用过iris数据):

library(patchwork)
library(ggplot2)
#Plot 1
G1 <- ggplot(iris,aes(x=Sepal.Length,y=Sepal.Width))+
  geom_point()
#Plot 2
G2 <- ggplot(iris,aes(y=Sepal.Length,x=Sepal.Width))+
  geom_point()
G3 <- ggplot(iris,aes(y=Petal.Width,x=Sepal.Width))+
  geom_point()
G4 <- ggplot(iris,aes(y=Petal.Length,x=Petal.Width))+
  geom_point()
#Wrap
#Layout
layout <- '
#A#
BCD
'
#Plot
wrap_plots(A = G1, B = G1,C=G2,D=G3, design = layout)

输出:

在此处输入图像描述

所有地块都将保持相同的尺寸,而不是这样:

在此处输入图像描述

它遵循与您共享的代码结构相似的代码结构。

于 2020-12-03T13:39:24.233 回答