目前我希望使用ggplot2在同一个窗口中绘制多个图。我在互联网上搜索过,我发现gridExtra::grid.arrange
功能可以完成这项任务。
为了使它起作用,我必须将参数中的每个图包括为gridExtra::grid.arrange(plot1,plot2,plot3,...,plotN)
。但是,如果我想更通用地使用这个功能并想输入一个情节列表怎么办? myList <- list(plot1,plot2,...plotN)
输入一个绘图列表并在函数中以unlist(myList)
的形式输入会产生错误。那么,这个问题的解决方案会是什么?
答案 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)