【发布时间】:2018-11-08 15:40:57
【问题描述】:
我正在尝试构建一个包含多个页面的报告。每一页都有相同的结构,一个标题说明显示的是哪家医院,然后是页面上半部分的表格和下半部分的图表。我正在使用tableGrob 将表格转换为图形对象,并使用arrangeGrob 将其全部放入页面中。我的代码看起来像:
library(ggplot2)
library(gridExtra)
library(grid)
library(gtable)
df <- iris[1:10,]
pp <- ggplot(iris, aes(x = Sepal.Length)) + geom_histogram(binwidth = 0.2)
tTitle <- textGrob(paste("Title line 1","\n", "Line 2", "\n", "Line 3"),
gp=gpar(fontsize=15))
padding <- unit(3,"line")
tt <- tableGrob(df, rows = NULL, theme = ttheme_minimal())
tt <- gtable_add_rows(tt, heights = grobHeight(tTitle) + padding, pos = 0)
tt <- gtable_add_grob(tt, list(tTitle), t=1, l=1, r=ncol(tt))
pg <- arrangeGrob(tt, pp,
nrow=2, as.table=FALSE)
pdf("Demo.pdf", paper = "a4", width = 8.27)
grid.draw(pg)
dev.off()
我的问题是页面顶部有很多空间,表格底部被情节切断了。
如何垂直对齐标题和表格,以便它们向上移动页面,为绘图留出足够的空间?
【问题讨论】: