我制作了一系列我想打印在同一页上的图。
主图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)我正在考虑添加绘图间隔符,但可以放入较低行的绘图数量是可变的。
谢谢。

发布于 2020-12-03 21:39:24
我无法用你分享的数据重现这个问题,因为它给出了错误,但我勾画了一个例子。您可以在wrap_plots()中使用layout选项来定义矩阵样式,如下所示(我已经使用了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)输出:

所有绘图将保持相同的尺寸,而不是这样:

它遵循与您共享的代码结构类似的代码结构。
https://stackoverflow.com/questions/65121156
复制相似问题