我需要将多个地 block 包裹在一个网格中,通常是奇数个,所以经常会有一个“空点”。
我需要使用 arrangeGrob()
——而不是 grid.arrange()
——因为我想保存绘图供以后使用,而不是 plot()
它马上。
这很好用,但奇怪的是,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()
p3 <- ggplot(mtcars, aes(x =factor(cyl), y=disp)) + geom_boxplot()
library(gridExtra)
y <- arrangeGrob(p1, p2, p3, ncol = 2)
plot(y)
在右下角产生一个带有一些奇怪的灰色东西的图:
将此与 grid.arrange()
进行比较:
grid.arrange(p1, p2, p3, ncol = 2)
产生一个没有灰色怪异的漂亮情节:
右下角这个灰色的东西是哪里来的?我该如何摆脱它?
请注意,我无法通过更改 ncol
来避免空白点;有时我的地 block 数量不均匀,所以总会有空位。
我可以接受空位,我只是喜欢它们干净。
(单独来看,最后一句话听起来很漂亮 OCD-ish。
更新
包作者(?)在下面回答:我应该使用grid.draw(y)
。
一个类似的问题仍然存在(也许是相同的根本原因?):如果您之前绘制一些对象,“空白点”仍然被那个过去图占据。 诡异的。 像这样:
plot(p1)
grid.draw(y)
产量:
最佳答案
arrangeGrob()
现在返回一个 gtable,您应该使用 grid.draw()
而不是 plot()
绘制它。
grid.draw(y)
产量
要去除过去绘图中的人工制品(按照上述更新),请使用 grid.newpage()
。
关于r - 我如何摆脱 arrangeGrob 中的随机背景网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31463445/