来自gridExtras的grid.arrange退出"只有' grobs'允许进入' gList'"更新后

时间:2016-01-17 13:31:38

标签: r ggplot2 gridextra r-grid

我刚刚在Mac上更新了R,R Studio以及一系列软件包,包括ggplot2和gridExtras。现在gridExtras在基本绘图中失败并出现错误:

"只有' grobs'允许进入" gList""

这里有一些应该有效的代码但是没有:

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

感谢任何帮助!

1 个答案:

答案 0 :(得分:34)

这是因为grid.arrange不再有main参数(似乎在2015年夏季的2.0.0版本中已被淘汰),因此认为main=参数必须是一个grob。要替换main,您现在可以使用top参数(以及bottomleftright)。

所以这可以作为例子:

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,...),...

以上代码的结果如下:

enter image description here