r - 将arrangeGrob存储到对象,不创建可打印对象

标签 r ggplot2 gridextra

我想保存,但不打印(暂时),一堆 ggplot() s 进入网格(通过 arrangeGrob() ,对吗?),然后打印并稍后检索它们。

这是 existing question 的重新启动.
奇怪的是,that answer不起作用,我不知道为什么。
我正在使用完全相同的代码。

  library(ggplot2)
  p1 <- ggplot(mtcars, aes(x=factor(cyl), y=mpg)) + geom_boxplot()
  p2 <- ggplot(mtcars, aes(x=factor(cyl), y=wt)) + geom_boxplot()
  library(gridExtra)
  y <- arrangeGrob(p1, p2)
  class(y)
  y

奇怪的是,这不会(如上面的答案)产生图网格,但是:
> class(y)
[1] "gtable" "grob"   "gDesc" 
> y
TableGrob (2 x 1) "arrange": 2 grobs
  z     cells    name           grob
1 1 (1-1,1-1) arrange gtable[layout]
2 2 (2-2,1-1) arrange gtable[layout]

这里发生了什么?

最佳答案

gridExtra软件包最近已更新,从而改变了 arrangeGrob在内部工作以及它返回什么样的对象(现在是 gtable )。

您需要调用grid.draw :

grid.draw(y)

resulting plot

编辑:不要使用 plot()正如最初建议的那样;它将添加灰色背景,并且仅用于调试 gtables。

关于r - 将arrangeGrob存储到对象,不创建可打印对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31458051/

相关文章:

r - 在ggplot中创建多列图例

r - 导出具有确切大小和字体大小的图形

r - 在 ggplots 列表上调用 grid.arrange

r - 使用指定的分页符将列表中的多个 ggplot 排列在多个页面上

R data.table 错误无法重命名为 NA 的列名

r - 在 Rscript.exe 中执行表达式

r - 根据 R 中单列中给定的列名从其他列复制值

r - 非分面图中的分面式标题

减少 grid.arrange 图之间的空间

R 正在绘制页面上的标签