2012-09-15 13 views
6

Aşağıda gösterildiği gibi düzenlemek ve knitr aracılığıyla ayrıştırılmış bir belgeye eklemek istediğim bir dizi ggplot s var. Gerçekten küçük bir portre figürüne sahip olmaktan ziyade, bu manzarayı olabildiğince doldurabilmesi için manzaraya döndürülmesini istiyorum. Herhangi bir fikir?Bir ggplot'u yatay olarak nasıl değiştiririm?

library(ggplot2) 
library(grid) 
df <- data.frame(x = 1:100, y =rnorm(100)) 
plota <- ggplot(df, aes(x, y)) + geom_point(size = 4) 


pushViewport(viewport(layout = grid.layout(3, 5))) 
vplayout <- function(x, y) viewport(layout.pos.row = x, layout.pos.col = y) 
     print(plota, vp = vplayout(1:2, 1:2)) 
     print(plota, vp = vplayout(1, 3)) 
     print(plota, vp = vplayout(1, 4)) 
     print(plota, vp = vplayout(1, 5)) 
     print(plota, vp = vplayout(2, 3)) 
     print(plota, vp = vplayout(2, 4)) 
     print(plota, vp = vplayout(2, 5)) 
     print(plota, vp = vplayout(3, 1)) 
     print(plota, vp = vplayout(3, 2)) 
     print(plota, vp = vplayout(3, 3)) 
     print(plota, vp = vplayout(3, 4)) 
     print(plota, vp = vplayout(3, 5)) 

cevap

6

LaTeX'te bir rakamı döndürmek kolaydır; http://yihui.name/knitr/options belgesinde belirtildiği gibi angle=90 seçeneğini kullanabilirsiniz; Aşağıdaki tam örneğe bakın:

\documentclass{article} 
\begin{document} 

<<out.extra='angle=90'>>= 
library(ggplot2) 
library(grid) 
df <- data.frame(x = 1:100, y =rnorm(100)) 
plota <- ggplot(df, aes(x, y)) + geom_point(size = 4) 

pushViewport(viewport(layout = grid.layout(3, 5))) 
vplayout <- function(x, y) viewport(layout.pos.row = x, layout.pos.col = y) 
     print(plota, vp = vplayout(1:2, 1:2)) 
     print(plota, vp = vplayout(1, 3)) 
     print(plota, vp = vplayout(1, 4)) 
     print(plota, vp = vplayout(1, 5)) 
     print(plota, vp = vplayout(2, 3)) 
     print(plota, vp = vplayout(2, 4)) 
     print(plota, vp = vplayout(2, 5)) 
     print(plota, vp = vplayout(3, 1)) 
     print(plota, vp = vplayout(3, 2)) 
     print(plota, vp = vplayout(3, 3)) 
     print(plota, vp = vplayout(3, 4)) 
     print(plota, vp = vplayout(3, 5)) 
@ 

\end{document} 
+1

Teşekkürler Yihui, çok takdire değer. – Maiasaura

İlgili konular