2014-01-16 35 views
3

我使用gridExtra的grid.arrange创建了一个图表,并尝试为整个绘图添加一个主标题,然后将其保存到.png文件中。如何降低gridExtra的grid.arrange中的主标题?

使用main="TITLE"参数可以工作,但无论我设置图表的高度如何,都会用上边框刷新。

我的问题:我如何设置它使得主标题不会被顶部边框刷新?一种方法是为整个图表添加一个整体边距,但是我再次无法弄清楚。

举个例子,我修改SandyMuspratt和巴蒂斯特的代码grid arrange to place table and graph on one image

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输出显示标题与边框刷新: PNG Output

我怀疑的解决方案可能是很简单的,但我似乎无法在网上找到解决方案。我已阅读?grid.arrange,Adding text to a grid.table plot和其他帖子,但没有提到这一点。

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

回答

11

?textGrob给出一个提示:

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

编辑(16/07/2015):与gridExtra> = 2.0.0,所述main参数已被重命名top。详细信息请参见?arrangeGrob

+2

谢谢,@tonytonov!所以我一直在寻找错误的地方寻求答案!如果我可以稍微修改一下你的答案,那么使用'vjust = 0.7'而不是'just =“top”'就可以把标题放在垂直空间的中间。 – NoviceProg