2012-05-27 21 views
9

Używam pakietu siatki, aby wyświetlić tablicę działek takiego:R: Siatka tytuł układ

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

Czy istnieje jakiś sposób, aby podać tytuł dla cały układ siatki?

Odpowiedz

14

Dummy przykład oparty na podobnej SO pytanie: Place title of multiplot panel with ggplot2

  1. najpierw utworzyć układ z wymaganą liczbę wierszy + 1 krótki jeden dla tytułu:

    pushViewport(viewport(layout = grid.layout(3, 2, heights = unit(c(0.5, 5, 5), "null")))) 
    
  2. utworzyć kilka działek tam :

    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. Dodaj tytuł do góry ro w:

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

skutki:

enter image description here

+0

stosując wykres podstawy jest mało kłopotliwe; szczególnie, że nie szanuje układu. – baptiste

+0

Wielkie dzięki @ Baptiste, zaktualizowałem swoją odpowiedź na podstawie wskazówek (i '+ 1' za odpowiedź i świetny pakiet). – daroczig

+0

Problem z tym podejściem polega na tym, że tytuł skaluje się z wykresami. Jednak chciałbym, aby tytuł miał stałą wysokość wraz ze zmianą rozmiaru okna lub drukowaniem do formatu PDF. – nccc

11

inny sposób:

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