2012-05-27 97 views
9

我使用的是格包,以顯示圖的一個這樣的數組:R:網格佈局標題

layout <- grid.layout(2, 4) 
pushViewport(viewport(layout = layout)) 
# print various plots 

是否有某種方式來指定整個網格佈局標題?

回答

14
基於類似的SO問題

假人例如:Place title of multiplot panel with ggplot2

  1. 首先創建一個佈局所需的行數的+ 1短一個用於標題:

    pushViewport(viewport(layout = grid.layout(3, 2, heights = unit(c(0.5, 5, 5), "null")))) 
    
  2. 創建一些情節有:

    print(ggplot(mtcars, aes(hp)) + geom_histogram(), vp = viewport(layout.pos.row = 2, layout.pos.col = 1:2)) 
    print(ggplot(mtcars, aes(wt)) + geom_histogram(), vp = viewport(layout.pos.row = 3, layout.pos.col = 1)) 
    print(ggplot(mtcars, aes(mpg)) + geom_histogram(), vp = viewport(layout.pos.row = 3, layout.pos.col = 2)) 
    
  3. 給top ro增加一個標題瓦特:

    grid.text("MAIN TITLE", vp = viewport(layout.pos.row = 1, layout.pos.col = 1:2)) 
    

從而造成:

enter image description here

+0

是有點混亂;特別是因爲它不尊重佈局。 – baptiste

+0

非常感謝@baptiste,我根據你的指導更新了我的答案(並且'+ 1'爲你的答案和很棒的包裝)。 – daroczig

+0

這種方法的問題是標題隨圖形變化。不過,我希望標題在窗口大小調整或打印爲PDF時具有不變的高度。 – nccc

11

的另一種方法:使用鹼情節

library(gridExtra) 
g = rectGrob() # dummy "plot" 
grid.arrange(g, g, g, g, ncol=2, top = "Main Title")