如何在网格中绘制图表列表

时间:2018-04-15 16:02:18

标签: r ggplot2

目前我希望使用ggplot2在同一个窗口中绘制多个图。我在互联网上搜索过,我发现gridExtra::grid.arrange功能可以完成这项任务。

为了使它起作用,我必须将参数中的每个图包括为gridExtra::grid.arrange(plot1,plot2,plot3,...,plotN)。但是,如果我想更通用地使用这个功能并想输入一个情节列表怎么办? myList <- list(plot1,plot2,...plotN)

输入一个绘图列表并在函数中以unlist(myList)的形式输入会产生错误。那么,这个问题的解决方案会是什么?

1 个答案:

答案 0 :(得分:0)

要使grid.arrange()起作用,您需要显式定义grobs参数。

library(ggplot2)
library(gridExtra)

df <- data.frame(x = 1:100,
                 y1 = runif(100),
                 y2 = runif(100)^2)

plot_list <- list(
    plot1 = ggplot(df, aes(x, y1)) + geom_point(),
    plot2 = ggplot(df, aes(x, y2)) + geom_point()
    )

gridExtra::grid.arrange(grobs = plot_list)