2014-01-16 36 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