我刚刚在我的Mac上更新了R、R Studio和一堆包,包括ggplot2和gridExtras。现在gridExtras在基本绘图中失败,并显示以下错误:
“gList”中仅允许“grobs”
下面是一些应该可以工作但却不能工作的代码:
library(ggplot2)
p1 = qplot(1:10,rnorm(10))
p2 = qplot(1:10,rnorm(10))
library(gridExtra)
grid.arrange(p1, p2, ncol=2, main = "Main title")这将转储以下错误:
Error in gList(list(grobs = list(list(x = 0.5, y = 0.5, width = 1, height = 1, :
only 'grobs' allowed in "gList"
In addition: Warning message:
In grob$wrapvp <- vp : Coercing LHS to a list如有任何帮助,我们不胜感激!
发布于 2016-01-17 21:49:41
这是因为grid.arrange不再有main参数(似乎在2015年夏天的2.0.0版本中被消除了),因此认为main=参数必须是grob。要替换main,现在可以使用top参数(以及bottom、left和right)。
举个例子,这是可行的:
library(ggplot2)
p1 = qplot(1:10,rnorm(10))
p2 = qplot(1:10,rnorm(10))
library(gridExtra)
grid.arrange(p1, p2, ncol=2,top="Main Title")这条消息有点令人困惑,这是因为它查看了所有不知道的参数,并假设它们可能是它可以绘制的grobs (图形对象)。像这样令人困惑的错误消息是您为这种灵活性付出的代价。
注意:-如果你有很多grobs,你应该考虑把它们打包到一个列表中,并使用下面的形式:
grid.arrange( grobs = list(p1,p2,...),...以下是上述代码结果:

发布于 2021-01-14 00:11:15
如果绘图是使用基本绘图生成的,也可能会出现此错误,因为grid.arrange旨在与诸如ggplot2之类的“网格图形对象”(grobs)一起使用。
人们可以找到一个等效的网格图,或者使用基本图形方法来堆叠图。
一种基础图的解决方案:
par(mfrow = c(2, 1))
plot(rnorm(100))
hist(rnorm(100))
par(mfrow = c(1, 1)) #reset this parameter

https://stackoverflow.com/questions/34838870
复制相似问题