我想删除默认情况下在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引起的,但我找不到任何解决此问题的答案。
提前致谢!
答案 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))
答案 1 :(得分:4)
我实际上发现参数统治了grobs之间的间距:高度,见下面的行
grid.arrange(plots, table, heights=c(5,1))