10

我想删除默认情况下在 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 造成的,但我找不到任何解决这个问题的答案。

提前致谢!

4

2 回答 2

8

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))

在此处输入图像描述

于 2015-08-21T22:14:14.000 回答
4

我实际上找到了控制 grobs 之间间距的参数:高度,请参见下面的行

grid.arrange(plots, table, heights=c(5,1))
于 2015-08-21T14:57:12.430 回答