我需要将几个图包裹在一个网格中,通常是奇数,所以经常会出现“空位”。
我需要使用arrangeGrob()
-- not grid.arrange()
——因为我想把情节留着以后用,而不是plot()
马上。
这工作正常,但奇怪的是,arrangeGrob()
在空白处留下一些奇怪的背景。
Like so:
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
;我有时候地块数量不均匀,所以总会有空位。
我对空的地方没意见,我只是喜欢它们干净。
(单独来看,最后一句话听起来很漂亮OCD-ish https://en.wikipedia.org/wiki/Obsessive%E2%80%93compulsive_disorder.
UPDATE
软件包作者(?)回答如下:我应该使用grid.draw(y)
.
类似的问题仍然存在(也许是相同的根本原因?):如果你绘制some之前的对象,“空位”仍然被那个对象占据past阴谋。
诡异的。
就像这样:
plot(p1)
grid.draw(y)
yields: