使用grid.arrange时出错:输入必须是grobs。

8

我有以下的R脚本:

    library(ggplot2)
    library(gridExtra)
    Sys.setenv(LANG ="en")
    c1 <- ggplot(mtcars, aes(factor(cyl))) + geom_bar()
    c2 <- ggplot(mtcars, aes(factor(cyl))) + geom_bar() + coord_flip()
    grid.arrange(c1, c2, ncols=1)

我在使用grid.arrange时遇到了以下错误:
“Error in arrangeGrob(..., as.table = as.table, clip = clip, main = main, : input must be grobs!”
我无法确定是什么原因导致了这个问题。
以下是我使用的版本信息:
“sessionInfo() R version 3.0.2 (2013-09-25) Platform: x86_64-apple-darwin10.8.0 (64-bit)”
    locale:
    [1] de_DE.UTF-8/de_DE.UTF-8/de_DE.UTF-8/C/de_DE.UTF-8/de_DE.UTF-8

    attached base packages:
    [1] grid      stats     graphics  grDevices utils     datasets  methods   base     

    other attached packages:
    [1] gridExtra_0.9.1 ggplot2_0.9.3.1

    loaded via a namespace (and not attached):
     [1] colorspace_1.2-4 digest_0.6.4     gtable_0.1.2     labeling_0.2     MASS_7.3-31      munsell_0.4.2    plyr_1.8.1       proto_0.3-10     Rcpp_0.11.1      reshape2_1.2.2  
    [11] scales_0.2.4     stringr_0.6.2    tools_3.0.2             
1个回答

17

我喜欢这个特定的错误,它是一个隐蔽的错误。长话短说,参数是ncol而不是ncols。在你的代码中,1被视为绘图对象,所以它失败了,并不是因为ggplot无效。错误消息并不是很有帮助,这使得情况更加晦涩。

# same error as with ncols=1
grid.arrange(c1, c2, blah=1)
# fine
grid.arrange(c1, c2, ncol=1)

非常感谢。对我来说,现在似乎还为时过早。我已经仔细检查了一切,除了这个......谢谢! - JerryWho

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接