制作多面板结构,之后插入不同大小的图形(共16个)

Make a multiple panel structure to insert graphs of different sizes afterwards (16 in total)

我制作了 15 个饼图和一个折线图。

我现在的目标是按照图上的结构把它们排好

有没有像

这样的方法
par(mfrow=c(2,2))

构建这样一个结构,然后我可以在其中绘制我制作的所有图表?接受在这种情况下,我希望能够确定地块的大小。

试试这个,

library(gridExtra)
library(grid)
l <- cbind(c(5:1, NA), rbind(6:10, matrix(16, 5, 5)), c(11:15, NA))

# dummy placeholders for illustration
plots <- lapply(1:16, function(ii) 
            grobTree(rectGrob(), textGrob(paste("plot", ii))))

grid.arrange(grobs=plots, layout_matrix=l)

对于实际情节,尝试

 plots <- replicate(16, ggplot(), simplify = FALSE)

或您的 16 个地块(或网格 grob)的列表,

您可能想提取某种类型矩阵的维度,但这种冗长的方法会让您到达那里,并让您看到在大小和位置方面发生了什么 - 很确定它是 [=11 的包装器=] 或 gridExtra:

library(cowplot)

p1 <- ggplot(mtcars, aes(x = hp, y = mpg)) + geom_point()

ggdraw() +
  draw_plot(p1, 0, 0.1, 0.1, 0.1) +
  draw_plot(p1, 0, 0.2, 0.1, 0.1) +
  draw_plot(p1, 0, 0.3, 0.1, 0.1) +
  draw_plot(p1, 0, 0.4, 0.1, 0.1) +
  draw_plot(p1, 0, 0.5, 0.1, 0.1) +
  draw_plot(p1, 0.1, 0.5, 0.1, 0.1) +
  draw_plot(p1, 0.2, 0.5, 0.1, 0.1) +
  draw_plot(p1, 0.3, 0.5, 0.1, 0.1) +
  draw_plot(p1, 0.4, 0.5, 0.1, 0.1) +
  draw_plot(p1, 0.5, 0.5, 0.1, 0.1) +
  draw_plot(p1, 0.6, 0.5, 0.1, 0.1) +
  draw_plot(p1, 0.7, 0.5, 0.1, 0.1) +
  draw_plot(p1, 0.7, 0.4, 0.1, 0.1) +
  draw_plot(p1, 0.7, 0.3, 0.1, 0.1) +
  draw_plot(p1, 0.7, 0.2, 0.1, 0.1) +
  draw_plot(p1, 0.7, 0.1, 0.1, 0.1) +
  draw_plot(p1, 0.1, 0, 0.6, 0.5) # this is the big one