marrangeGrob 给出 nrow 的错误

marrangeGrob giving error for nrow

我正在尝试使用 for 循环创建一堆 ggplot2 图,然后将它们保存在多页 pdf 文档中,但我在使用 marrangeGrob 时遇到了问题。下面是一些示例代码:

 Plots <- list()
 Plots[[1]] <- qplot(mtcars$mpg, mtcars$wt)
 Plots[[2]] <- qplot(mtcars$cyl, mtcars$wt)
 Plots[[3]] <- qplot(mtcars$mpg, mtcars$qsec)
 Plots[[4]] <- qplot(mtcars$cyl, mtcars$drat)

 # install.packages("gridExtra", dependencies = TRUE)
 library(gridExtra)

 MyPlots <- do.call(marrangeGrob, c(Plots, nrow = 1, ncol = 2))
 ggsave("My plots on multiple pages.pdf", MyPlots)

我过去使用过类似版本的 do.call(marrangeGrob... 行并让它们工作,但现在,当我尝试执行该行时出现此错误:Error: nrow * ncol >= n is not TRUE。事实上,与此类似的代码曾经有效,这让我认为其中一个软件包中的某些内容已经更新。对于如何解决这个问题,有任何的建议吗?

使用新的 grobs 参数,语法略有变化。你应该使用

marrangeGrob(grobs=Plots, nrow = 1, ncol = 2)

或者,等价地,

do.call(marrangeGrob, list(grobs=Plots, nrow = 1, ncol = 2))