如何使用grid.arrange来安排一个variables列表?
library(ggplot2) df <- data.frame(x=1:10, y=rnorm(10)) p1 <- ggplot(df, aes(x,y)) + geom_point() plist <- list(p1,p1,p1,p1,p1) # In my real example,a plot function will fit a ggplot to a list of datasets #and return a list of ggplots like the example above.  我想在gridExtra使用grid.arrange()来安排图。 
 如果plist的地块数量是可变的,我将如何做到这一点? 
 这工作: grid.arrange(plist[[1]],plist[[2]],plist[[3]],plist[[4]],plist[[5]]) 
但我需要一个更一般的解决scheme。 想法?
这个怎么样:
 library(gridExtra) n <- length(plist) nCol <- floor(sqrt(n)) do.call("grid.arrange", c(plist, ncol=nCol)) 

 为了完整起见( 最近已经回答了这个问题,最近已经回复了这个问题),我想用cowplot包添加一个解决scheme: 
 cowplot::plot_grid(plotlist = plist, ncol = 2) 
  
 
 只要您使用每个函数中的grobs =参数来指定列表,就可以使用grid.arrange()和列表arrangeGrob() 。 例如在你给的例子中: 
 library(ggplot2) library(gridExtra) df <- data.frame(x=1:10, y=rnorm(10)) p1 <- ggplot(df, aes(x,y)) + geom_point() plist <- list(p1,p1,p1,p1,p1) grid.arrange(grobs = plist, ncol = 2) ## display plot ggsave(file = OutFileName, arrangeGrob(grobs = plist, ncol = 2)) ## save plot