Я создаю список объектов 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, в две строки.
Заранее спасибо
Thomas Philips