我需要在网格中包含几个图,通常是一个不均匀的数字,所以通常会有一个空白点#34; 。
我需要使用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
,请注意我无法避免空白点;我有时的情节数量不均匀,所以总是空点。
我有空位,我只是喜欢他们干净。
(孤立地说,最后一句听起来很OCD-ish。
更新
包裹作者(?)回答如下:我应该使用grid.draw(y)
。
还存在类似的问题(可能是相同的根本原因?):如果您之前绘制某些对象,那么&#34;空白点&#34;仍然被过去的情节所占据。 奇怪的。 像这样:
plot(p1)
grid.draw(y)
的产率:
答案 0 :(得分:4)
arrangeGrob()
现在返回一个gtable,您应该使用grid.draw()
绘制,而不是plot()
。
grid.draw(y)
产量
要从过去的地块中删除人工制品(按照上述更新),请使用grid.newpage()
。
答案 1 :(得分:-1)
删除nrow
参数。像这样:
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, ncol = 2)
plot(y)