2016-03-23 14 views
7

Sto tentando di aggiungere la nota a piè di pagina al grafico grid.arrange. Ho presentato la mia idea in questo esempio riproducibile: )Strange space on grid.arrange plot

library(ggplot2) 
library(gridExtra) 
library(grid) 
library(gtable) 

summary(anscombe) 

p1 <- ggplot(anscombe) + geom_point(aes(x1, y1), color = "darkorange", size = 3) + theme_bw() 

p2 <- ggplot(anscombe) + geom_point(aes(x2, y2), color = "darkorange", size = 3) + theme_bw() 

p3 <- ggplot(anscombe) + geom_point(aes(x3, y3), color = "darkorange", size = 3) + theme_bw() 

p4 <- ggplot(anscombe) + geom_point(aes(x4, y4), color = "darkorange", size = 3) + theme_bw() 

title <- textGrob("Some title", 
       gp=gpar(fontsize=20,fontface=2)) 

source1<- textGrob("Source: https://rpubs.com/neilfws/91339", 
       hjust=0,x=0,y=1, 
       gp=gpar(fontsize=10,fontface=3)) 

grid.arrange(arrangeGrob(p1,p2,p3,p4, ncol=2, sub = source1), top = title) 

Questo codice genera quella foto:

enter image description here

con grande spazio sotto i grafici. Come sbarazzarsi di questo? Perché è stato creato?

risposta

4

Provare a utilizzare bottom invece di sub:

grid.arrange(arrangeGrob(p1,p2,p3,p4, ncol=2, bottom = source1), top = title) 

enter image description here

+1

Nizza. Semplificando un po ', anche grid.arrange (p1, p2, p3, p4, ncol = 2, bottom = source1, top = title) 'funziona. –

+1

sì, il motivo per lo spazio bianco era che considerava il sottotitolo solo come un altro grob da organizzare, creando così un layout 3x2 (con altezze uguali per impostazione predefinita). È un problema con le funzioni che hanno '...' come primo argomento, ignoreranno silenziosamente i nomi che non corrispondono ai seguenti argomenti. – baptiste

+0

grazie mille per le risposte, ha funzionato. –

0

Un modo semplice è quello di utilizzare questo codice:

grid.arrange(arrangeGrob(p1,p2,p3,p4, ncol=2, sub = source1), top = title, heights = c(50,-15)) 

e modificare le altezze fino ad avere la spaziatura meritato. Ho raggiunto questo solo l'impostazione che il parametro con i valori hanno mostrato:

enter image description here