2012-05-27 15 views
9

sto usando il pacchetto di griglia per visualizzare una serie di trame in questo modo:R: Griglia titolo di layout

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

C'è qualche modo per specificare un titolo per l'intero layout griglia?

risposta

14

Dummy esempio sulla base di una simile domanda SO: Place title of multiplot panel with ggplot2

  1. Innanzitutto creare un layout con il numero di righe richiesto + 1 corto per il titolo:

    pushViewport(viewport(layout = grid.layout(3, 2, heights = unit(c(0.5, 5, 5), "null")))) 
    
  2. Creare alcuni appezzamenti lì :

    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. Aggiungere un titolo all'inizio della pagina w:

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

Con conseguente:

enter image description here

+0

usando un diagramma di base è un po 'di confusione; soprattutto dal momento che non rispetta il layout. – baptiste

+0

Grazie mille @baptiste, ho aggiornato la mia risposta in base alle tue indicazioni (e '+ 1' per la tua risposta e ottimo pacchetto). – daroczig

+0

Il problema con questo approccio è che il titolo si ridimensiona con i grafici. Tuttavia, mi piacerebbe che il titolo avesse un'altezza costante quando la finestra viene ridimensionata o quando stampo in PDF. – nccc

11

Un altro modo:

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