删除grid.arrange中的图和表之间的空白区域

时间:2015-08-21 13:20:59

标签: r gridextra grob

我想删除默认情况下在grid.arrange中的图和表之间插入的大间距,如下面的MWE所示:

require(ggplot2)
require(gridExtra)

list1=data.frame(mtcars[1:3, ])  # Dummy data
p1 = ggplot(list1, aes(mpg,cyl)) + geom_point()  # Dummy plot
p2 = ggplot(list1, aes(disp,hp)) + geom_point()  # Dummy plot
plots <- arrangeGrob(p1, p2,nrow=2)

table <- tableGrob(list1)
grid.arrange(plots, table)

我怀疑这种行为是由于tableGrob引起的,但我找不到任何解决此问题的答案。

提前致谢!

2 个答案:

答案 0 :(得分:5)

默认情况下,

grid.arrange()为每个单元格分配相等的空间。如果你想在特定的grob周围紧密配合,你应该查询它的大小,并明确地传递它,

library(grid)
th <- sum(table$heights) # note: grobHeights.gtable is inaccurate
grid.arrange(plots, table, heights = unit.c(unit(1, "null"), th))

enter image description here

答案 1 :(得分:4)

我实际上发现参数统治了grobs之间的间距:高度,见下面的行

grid.arrange(plots, table, heights=c(5,1))