2016-03-23 30 views
7

Próbuję dodać przypis do wykresu grid.arrange. I przedstawił swój pomysł w tej powtarzalnej przykład: )Dziwna przestrzeń na 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) 

Ten kod generuje ten obrazek:

enter image description here

z ogromnej przestrzeni poniżej wykresach. Jak się tego pozbyć? Dlaczego jest tworzony?

Odpowiedz

4

Spróbuj użyć bottom zamiast sub:

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

enter image description here

+1

Nicea. Upraszczając nieco, 'grid.arrange (p1, p2, p3, p4, ncol = 2, bottom = source1, top = title)' również działa. –

+1

Tak, przyczyną białej przestrzeni było to, że uważała ona napisy za kolejne gramy do zaaranżowania, tworząc w ten sposób układ 3x2 (z równymi wysokościami domyślnie). To jest problem z funkcjami mającymi '...' jako pierwszy argument, będą one cicho ignorować nazwy, które nie są zgodne z następującymi argumentami. – baptiste

+0

wielkie dzięki za odpowiedzi, zadziałało. –

0

Prostym sposobem jest użycie tego kodu:

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

i modyfikowania wysokości aż masz zasłużoną odstępy. Osiągnąłem to jedyne ustawienie tego parametru z wykazywały wartości:

enter image description here