2012-05-27 13 views
9

ich das Raster-Paket mit einer Reihe von Plots wie folgt angezeigt werden:R: Grid Layout Titel

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

Gibt es eine Möglichkeit, einen Titel für das ganze Raster-Layout angeben?

Antwort

14

Dummy Beispiel basiert auf einer ähnlichen Frage SO: Place title of multiplot panel with ggplot2

  1. Zuerst ein Layout mit der erforderlichen Anzahl von Zeilen + 1 kurz einen für Titel erstellen:

    pushViewport(viewport(layout = grid.layout(3, 2, heights = unit(c(0.5, 5, 5), "null")))) 
    
  2. einige Parzellen dort erstellen :

    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. Fügen Sie einen Titel zum oberen ro hinzu w:

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

Resultierende in:

enter image description here

+0

ein Basisstück verwendet, sind etwas verwirrend; zumal es das Layout nicht respektiert. – baptiste

+0

Vielen Dank @baptiste, ich habe meine Antwort basierend auf Ihrer Anleitung aktualisiert (und '+ 1' für Ihre Antwort und tolles Paket). – daroczig

+0

Das Problem bei diesem Ansatz ist, dass der Titel mit den Diagrammen skaliert. Ich möchte jedoch, dass der Titel eine konstante Höhe hat, wenn das Fenster in der Größe geändert wird oder wenn ich in PDF drucke. – nccc

11

anderen Worten:

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