【问题标题】:Only grobs allowed in gListgList 中只允许使用 grobs
【发布时间】:2017-03-12 01:48:36
【问题描述】:

全部——关于这个确切的主题还有其他几个问题,但没有一个能解决我面临的问题。这是一个简单的sn-p代码。谁能告诉我这里的问题是什么?

> 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"

【问题讨论】:

标签: r plot gridextra


【解决方案1】:

问题在于plot()hist() 是基本图形,但不是网格或ggplot 图形,因此它们不是grobs(“grob”是“grid graphics object”的一个有点奇怪的首字母缩写词)。您可以找到等效的网格图或使用基本图形方法来堆叠图。

你会做后者的方式:

> 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了解详情。

【讨论】:

  • 谢谢@John Coleman!最好的解释。我使用 rnorm 的目的并不是为了说明。我已经使用 grid.arrange 让它工作了,但是使用 qplot 来绘制直方图。它现在是一种享受!
  • @skafetaur 我认为这只是一个例子。在教授统计课(我是一名数学老师)时,我实际上使用了非常相似的示例,其中同一组随机数在堆叠图中以不同的方式显示,所以你的例子让我觉得有点奇怪。我确实欣赏 R 的图形功能,但发现它被拆分为不同的不兼容包的方式有时令人困惑。找到一个纯 grid.arrange 解决方案可能是最好的,但最好了解一些基本图形制作图矩阵的方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-26
  • 1970-01-01
  • 2015-06-06
  • 1970-01-01
相关资源
最近更新 更多