如何降低gridExtra的grid.arrange中的主标题?

Posted

技术标签:

【中文标题】如何降低gridExtra的grid.arrange中的主标题?【英文标题】:How to lower main title in gridExtra's grid.arrange? 【发布时间】:2014-02-05 03:46:18 【问题描述】:

我使用 gridExtra 的 grid.arrange 创建了一个图表,并尝试在将其保存到 .png 文件之前为整个绘图添加一个主标题。

使用main="TITLE" 参数有效,但无论我设置图表的高度如何,它都会与顶部边框齐平。

我的问题:如何设置它以使主标题不与顶部边框齐平?一种方法是为整个图表添加整体边距,但同样,我可以不知道怎么做。

例如,我从grid arrange to place table and graph on one image修改了SandyMuspratt和Baptiste的代码:

library(ggplot2)
library(gridExtra)

x = read.table(text = "
               1/1/2010 10
               1/2/2010 20
               1/3/2010 15
               1/4/2010 56
               1/5/2010 46
               1/6/2010 15
               1/8/2010 15
               1/9/2010 15
               1/10/2010 20
               1/11/2010 15
               1/12/2010 15
               1/13/2010 40
               1/14/2010 15
               1/15/2010 15
               1/16/2010 70", sep = "", header = FALSE)

p1<-ggplot(x, aes(V2, V1)) + geom_point()
p2<-tableGrob(x)

png( filename = "TEST.png", width = 1700, height = 900, units = "px")
grid.arrange(p2, p1, main=textGrob("Total Data and Image", gp=gpar(cex=3)), 
             ncol = 2,widths=unit.c(grobWidth(p2), unit(1,"npc") - grobWidth(p2)))
dev.off()

显示标题与边框齐平的 PNG 输出:

我怀疑解决方案可能相当简单,但我似乎无法在线找到解决方案。我看过 ?grid.arrange、Adding text to a grid.table plot 和其他帖子,但没有人提到这一点。

任何帮助将不胜感激,并提前致谢!

【问题讨论】:

【参考方案1】:

?textGrob 给出提示:

main=textGrob("Total Data and Image", gp=gpar(cex=3), just="top")

编辑 (16/07/2015):gridExtra >= 2.0.0,main 参数已重命名为 top。详情请见?arrangeGrob

【讨论】:

谢谢,@tonytonov!所以我一直在寻找答案的错误地方!如果我可以稍微修改一下您的答案,使用vjust=0.7 而不是just="top" 会将标题放在垂直空间的中间。 如何在文档的外边距增加标题顶部的空间?我尝试了 pat() 失败。

以上是关于如何降低gridExtra的grid.arrange中的主标题?的主要内容,如果未能解决你的问题,请参考以下文章

R语言ggplot2可视化使用ggplot2::ggsave函数和gridextra::marrangegrob函数将多个可视化结果保存在pdf文件中

ggplot2 多图排版

如何创建具有特定于每个方面的标题和副标题的分面图?

左对齐两个图形边缘(ggplot)

R语言安装程序包

如何快速降低音乐音量?