我刚刚在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
感谢任何帮助!
答案 0 :(得分:34)
这是因为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,...),...
以上代码的结果如下: