如何在R中使用grid.arrange动态创建图形?

3

我有一个名为get.single.plot的函数,它接受一个字符参数并返回一个ggplot2绘图对象。我想要构建一个grid.arrange对象,并在其中放置n个图形,其中n是(提到的)字符参数向量的大小。

例如,我希望以下代码能够正常工作:

character.argument.vector <- c("12", "1", "2")
grid.arrange(unlist(lapply(character.argument.vector, function(n) get.single.plot(n))),
         ncol = 1)

这样的东西无法工作 - 我收到以下信息:
Error in arrangeGrob(..., as.table = as.table, clip = clip, main = main,  : 
input must be grobs!

我该如何做?

2
do.call(grid.arrange, c(lapply(), ncol=1)) - baptiste
2
谢谢你,@baptiste!这不是你第一次帮助我了,我非常感谢你对社区的贡献! - Marta Karas
@Marciszka,这可能是因为他是gridExtra包的作者... - David Arenburg
这只适用于ggplots吗?我正在使用标准的plot(),并使用Baptiste给出的相同语法,但我得到了与OP相同的错误。 - brucezepplin
@baptiste,请将您的评论添加为答案。 - Eric Fail
1个回答

2

使用 gridExtra v>=2.0,您可以将一组 grobs(或 plots)列表传递给 grid.arrange。

grid.arrange(grobs = lapply(...), ncol=1)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接