大家好 -- 有几个关于这个问题的问题,但没有一个解决我面临的问题。这是一段简单的代码片段。请问这里的问题是什么?
> grid.arrange(plot(rnorm(1000)),hist(rnorm(1000)), nrow=2, ncol=1)
Error in gList(list(wrapvp = list(x = 0.5, y = 0.5, width = 1, height = 1, :
only 'grobs' allowed in "gList"
问题在于plot()
和hist()
是基本图形,而不是网格或ggplot图形,因此它们不是grob(“grob”是“网格图形对象”的一个有点奇怪的缩写)。您可以找到等效的网格图或使用基本图形方法堆叠图。
您可以通过以下方式来实现后者:
> par(mfrow = c(2, 1))
> plot(rnorm(1000))
> hist(rnorm(1000)) #are you sure you want to make a hist of 1000 *different* random numbers?
> par(mfrow = c(1, 1)) #reset this parameter
输出:
你也可以考虑使用layout
。键入?layout
获取详细信息。
grobs
。如果你真的想使用grid.arrange
,你可以尝试像这个问题中使用grab_grob
函数。https://dev59.com/ZFsX5IYBdhLWcg3wcPAE - Mike H.