首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自gridExtras的grid.arrange在更新后退出,并显示“在‘gList’中只允许'grobs‘”

问来自gridExtras的grid.arrange在更新后退出,并显示“在‘gList’中只允许'grobs‘”
EN

Stack Overflow用户
提问于 2016-01-17 21:31:38
回答 2查看 55.4K关注 0票数 43

我刚刚在我的Mac上更新了R、R Studio和一堆包,包括ggplot2和gridExtras。现在gridExtras在基本绘图中失败,并显示以下错误:

“gList”中仅允许“grobs”

下面是一些应该可以工作但却不能工作的代码:

代码语言:javascript
复制
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")

这将转储以下错误:

代码语言:javascript
复制
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

如有任何帮助,我们不胜感激!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-17 21:49:41

这是因为grid.arrange不再有main参数(似乎在2015年夏天的2.0.0版本中被消除了),因此认为main=参数必须是grob。要替换main,现在可以使用top参数(以及bottom、left和right)。

举个例子,这是可行的:

代码语言:javascript
复制
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,你应该考虑把它们打包到一个列表中,并使用下面的形式:

代码语言:javascript
复制
grid.arrange( grobs = list(p1,p2,...),...

以下是上述代码结果:

​

​

票数 53
EN

Stack Overflow用户

发布于 2021-01-14 00:11:15

如果绘图是使用基本绘图生成的,也可能会出现此错误,因为grid.arrange旨在与诸如ggplot2之类的“网格图形对象”(grobs)一起使用。

人们可以找到一个等效的网格图,或者使用基本图形方法来堆叠图。

一种基础图的解决方案:

代码语言:javascript
复制
par(mfrow = c(2, 1))
plot(rnorm(100))
hist(rnorm(100)) 
par(mfrow = c(1, 1)) #reset this parameter

​

​

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34838870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档