【发布时间】:2020-01-27 04:10:56
【问题描述】:
我在循环中生成一个 ggplot 对象列表,如下所示:
myPlots = list()
for(i in 1:length(maturities)){
myPlots[[i]] <- ggplot(deltaIR.df, aes(sample = deltaIR.df[,i])) +
stat_qq() + stat_qq_line() +
labs(title=maturities[i],
x = "Theoretical (Normal)",
y = "Empirical Distribution")
}
根据数据集,myPlots 中可能有 4 到 10 个图。我现在想将它们分两行打印在一个页面上,并尝试了各种方法,取得了不同程度的成功。最有前途的方法是
library(ggpubr)
grid.arrange(myPlots[[1]], myPlots[[2]], myPlots[[3]], myPlots[[4]],
myPlots[[5]], myPlots[[6]], myPlots[[7]], myPlots[[8]], nrow = 2)
这显然可行,但需要我枚举所有对象,而且我不知道会有多少对象。我试图通过编写来简化这一点
ggarrange(myPlots, nrow = 2)
但收到警告信息:
Warning message:
In as_grob.default(plot) : Cannot convert object of class list into a grob.
我做错了什么,我该如何解决这个问题?理想情况下,一行简单的代码会将存储在 myPlots 中的所有图打印成两行。
提前致谢
托马斯·飞利浦
【问题讨论】: