0

假设我有一个ALL包含 40 个元素的列表,每个元素都是ggplot.

如果我想绘制其中一个,我可以做

ALL[[1]] 

或者

print(ALL)

如果我想将它们全部绘制在一起,我可以

grid.arrange(ALL[[1]] ,ALL[[2]], ALL[[3]], ....  )

或者

grid.arrange(ALL[[names(ALL)[1]]] ,ALL[[names(ALL)[2]]], ALL[[names(ALL)[3]]], ....  )

这对于许多列表元素来说真的很累。但我不知道如何调用grid.arrange来绘制所有地块。我不想apply超过列表,因为我想在同一页面上绘制多个图。

调用 40 个图grid.arrange可能看起来很多,但它们是小图,即使对于页面上 1:10 的图,这也需要大量输入!!!!

4

1 回答 1

1

只要你有一个列表(这里是你的ALL),它的元素是你想要传递给函数的参数(这里grid.arrange),你可以使用do.call.

这应该可以解决问题:

## Equivalent to grid.arrange(ALL[[1]], ALL[[2]], ..., ALL[[n]])
do.call(grid.arrange, ALL)
于 2014-12-03T17:50:48.383 回答