2013-03-21 11 views
21

ile birleştirilen iki ggplots arasındaki tüm boşluğu kaldırma Temanın arasına boşluk bırakmadan iki grafik çizmek istiyorum (böylece bir eksen paylaşırlar).grid.arrange

Verilen:

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) 

üretir Hangi:

enter image description here

iki araziler arasında boşluk ortadan kaldırmak istiyoruz.

left align two graph edges (ggplot)'un genişlikleri için yapıldığı gibi, ince ayar yükseklikleri var ancak çözüm bulamıyor.

+0

Olası çoğalt [grid.arrange'dan sınırları kaldırın] (http://stackoverflow.com/questions/13728272/remove-the-borders-from-grid-arrange) – kdarras

cevap

31

Her iki grafik için de plot.margin belirtmeli ve p1 için alt kenar boşluğu ve p2 için üst kenar boşluğu için negatif değer belirtmelisiniz. Bu, her iki arsaya katılmasını sağlayacaktır.

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

grid.arrange

kullanmadan önce alanlara (p1, p2) etrafında sola ve alt kenar boşluklarını kaldırmak için

+ labs(x=NULL) 

VEYA

+ labs(x=NULL, y=NULL) 

deneyin
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

bu da büyük değildir; Ya insanlar gerçekten eksen başlıklarını istiyorsa? Ya da efsaneler? En iyi seçenek, masaüstlerini düzgün bir şekilde hizalamak olacaktır ve burada daha genel ve güvenilir çözümler sunan birkaç gönderi var – baptiste

+6

Daha iyi çözümlere bağlanan zihniniz mi var? –