我正在尝试使用 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))

关于r - marrangeGrob 为 nrow 给出错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33352508/

10-12 17:25