2014-06-19 25 views
6

Tam bir ggplot nesnesini 90 ° döndürmek istiyorum.Bir ggplot2 çizim nesnesini döndürme

bu yönleriyle kullanırken scale="free" ve space="free" müdahale göründüğü gibi coord_flip kullanmak istemezler. Örneğin

:

qplot(as.factor(mpg), wt, data=mtcars)+ 
facet_grid(.~vs + am, scale="free",space="free") 

enter image description here

vs

qplot(as.factor(mpg), wt, data=mtcars)+ 
    facet_grid(vs + am ~ ., scale="free",space="free")+ 
    coord_flip() 

enter image description here

isterim Ne:

enter image description here

Büyük olasılıkla gridExtra'u kullanmam gerekir.

+0

Neden ggplot2/ızgara ile döndürmek gerekiyor? Bunu kullanmak istediğiniz herhangi bir yazılımda (örneğin, lateks veya kelime) rotasyon yapmak daha kolay olabilir. – Roland

cevap

13
print(p, vp=viewport(angle=-90)) 
+0

Bulduğum zahmetli alternatif "grid.newpage() pushViewport (viewport (açı = -90, genişlik = birim (7," inç "), yükseklik = birim (7," inç "))) grid.draw (ggplot_gtable (ggplot_build (p))) –

+1

İyi bir tane. Sen asil-Ace'sin. (Muhtemelen "manzara" olarak basılmış olabilirim, ancak bunu bir görüntüyü ittiyseniz, print (p) 'i (print) kullanabilmeniz için knitr ya da diğer biçimlendirme sistemlerinde gönderebilme değerini görebiliyorum –

+1

@ EtienneLow-Décarie (newpage = FALSE) 'Ve eğer bir nedenden dolayı açıkça bir grob çizmek istiyorsanız, 'ggplotGrob' daha kısa bir takma addır. – baptiste

1

Beklediğin şey bu muydu?

qplot(x=wt, y=as.factor(mpg), data=mtcars) + 
    facet_grid(vs + am ~ ., scale="free", space="free") 

"rotated" plot

+0

Evet, ama tüm arsa dönüşümü aradığım şeydir. –