我正在尝试使用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
。类似于以前的代码工作的事实使我认为其中一个包中的某些内容已经更新。对于如何解决这个问题,有任何的建议吗?
答案 0 :(得分:6)
新grobs
参数的语法稍有变化。你应该使用
marrangeGrob(grobs=Plots, nrow = 1, ncol = 2)
或等同地
do.call(marrangeGrob, list(grobs=Plots, nrow = 1, ncol = 2))