max*_*eld 10 r ggplot2 gridextra
我想保存,但不打印(现在),一堆ggplot()s进入网格(通过arrangeGrob(),正确吗?),然后打印并在以后检索它们.
这是对现有问题的重新启动.奇怪的是,这个答案不起作用,我不明白为什么.我使用完全相同的代码.
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
Run Code Online (Sandbox Code Playgroud)
奇怪的是,这并没有(如上面的答案)产量图的网格,但是:
> 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]
Run Code Online (Sandbox Code Playgroud)
这里发生了什么?
该gridExtra软件包最近已更新,从而改变了arrangeGrob内部工作方式以及它返回的对象类型(现在为a gtable).
你需要打电话grid.draw:
grid.draw(y)
Run Code Online (Sandbox Code Playgroud)

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