2013-03-21 12 views
21

Voglio attaccare due trame senza spazio tra il tema (quindi condividono un asse).rimuovendo tutto lo spazio tra due ggplots combinato con grid.arrange

Dato:

p1 <- qplot(1,1,xlab="") 

p1 <- p1 + 
    theme(legend.position="none", 
     axis.text.x=element_blank(), 
     axis.ticks.x=element_blank(), 
     plot.margin=unit(c(1,1,0,1), "cm"), 
     panel.margin=unit(c(1,1,0,1), "cm")) 
p2 <- qplot(1,2) 

grid.arrange(p1,p2) 

Che produce:

enter image description here

mi vogliono eliminare lo spazio bianco tra le due trame.

Ho l'impressione che ritocca l'altezza, come è stato fatto per le larghezze in: left align two graph edges (ggplot) è la soluzione, ma non riesco a capirlo.

+0

Possibile duplicato di [rimuovere i bordi da grid.arrange] (http://stackoverflow.com/questions/13728272/remove-the-borders-from-grid-arrange) – kdarras

risposta

31

È necessario fornire plot.margin per entrambi i grafici e impostare il valore negativo per il margine inferiore per p1 e il margine superiore per p2. Ciò assicurerà che entrambi i join della trama.

p1 <- qplot(1,1,xlab="")+ 
    theme(legend.position="none", 
     axis.text.x=element_blank(), 
     axis.ticks.x=element_blank(), 
     plot.margin=unit(c(1,1,-0.5,1), "cm")) 
p2 <- qplot(1,2)+ 
    theme(legend.position="none", 
     plot.margin=unit(c(-0.5,1,1,1), "cm")) 


grid.arrange(p1,p2) 

enter image description here

1

prova

+ labs(x=NULL) 

O

+ labs(x=NULL, y=NULL) 

per rimuovere i margini sinistro e inferiore intorno alle trame (p1, p2) prima di usare grid.arrange

p1 <- qplot(1,1)+ 
theme_bw() + 
theme(axis.text.x=element_blank(), 
axis.ticks.x=element_blank(), 
plot.margin = rep(unit(0,"null"),4), 
panel.margin = unit(0,"null"), 
axis.ticks.length = unit(0,"null"), 
axis.ticks.margin = unit(0,"null")) + 
labs(x=NULL) 
p2 <- qplot(1,2)+ 
theme_bw() + 
theme(
plot.margin = rep(unit(0,"null"),4), 
panel.margin = unit(0,"null"), 
axis.ticks.length = unit(0,"null"), 
axis.ticks.margin = unit(0,"null")) 

grid.arrange(p1,p2) 
+2

anche questo non è eccezionale; e se le persone volessero davvero i titoli degli assi? O leggende? La migliore opzione sarebbe quella di allineare correttamente i gtables, e qui ci sono diversi post che offrono soluzioni più generali e affidabili – baptiste

+6

Mind linking a quelle soluzioni migliori? –

Problemi correlati