2012-11-27 15 views
5

Używam knitr z działek. Chciałbym obrócić jeden z nich o 90 stopni. Na przykład:Jak obrócić jedną działkę z wielu podczas korzystania z knitr?

\documentclass{article} 

\begin{document} 


<<cache=TRUE, echo=FALSE, message=FALSE, warning=FALSE, comment=NA, eval=TRUE, results=asis>>= 

library("ggplot2") 
library("gridExtra") 

func <- function(data,x,y) { 

    p1 <- ggplot(data.frame(data), aes(x = x, y = y)) + geom_point() 
    p2 <- ggplot(data.frame(data), aes(x = x, y = y)) + geom_point() 
    p3 <- ggplot(data.frame(data), aes(x = x, y = y)) + geom_point() 
    p4 <- ggplot(data.frame(data), aes(x = x, y = y)) + geom_point() 

    grid.newpage() 
    pushViewport(viewport(width = .9, height = .9,layout = grid.layout(nrow=2, ncol=2))) 
    print(p1,vp = viewport(layout.pos.row = 1, layout.pos.col = 1)) 
    print(p2,vp = viewport(layout.pos.row = 2, layout.pos.col = 1)) 
    print(p3,vp = viewport(layout.pos.row = 1, layout.pos.col = 2)) 
    print(p4,vp = viewport(layout.pos.row = 2, layout.pos.col = 2)) 

    grid.newpage() 
    pushViewport(viewport(width = .8, height = .5,layout = grid.layout(nrow=1, ncol=2))) 
    print(p1,vp = viewport(layout.pos.row = 1, layout.pos.col = 1)) 
    print(p2,vp = viewport(layout.pos.row = 1, layout.pos.col = 2)) 

} 

x <- runif(20,0,1) 
y <- rnorm(20) 
test <- cbind(x,y) 
func(test,x=test$x,y=test$y) 

@  

\end{document} 

Chciałbym obrócić zarówno drugą stronę, jak i grafem o 90 stopni. Wiem, że można to wykorzystać dla jednej strony:

\usepackage{pdflscape} 
\begin{landscape} 
.... 
\end{landscape} 

Ale dwa wykresy są ułożone według grid.newpage() w ramach jednej funkcji. Jak mogę to osiągnąć? Wielkie dzięki!

+1

Uwaga oczekuje się, aby napisać 'wyników = 'asis'' zamiast 'asis'. Jak pokazuje poniższa odpowiedź, to (obrót o 90 stopni) jest przykładem użytym w dokumentacji. –

Odpowiedz

8

myślę, że można użyć out.extra w opcjach fragmentach:

Od knitr docs: http://yihui.name/knitr/options

out.extra: (NULL; znaków) Dodatkowe opcje dla danych liczbowych, na przykład out.extra = 'kąt = 90' w wyjściu LaTeX obróci liczbę o 90 stopni; może to być dowolny ciąg, np. w tej opcji możesz zapisać wiele opcji liczbowych ; Dotyczy to także do obrazów w formacie HTML (dodatkowe opcje zostaną zapisane w tagu, np out.extra = 'style = "display: block;"')

<<out.extra='angle=90', cache=TRUE, echo=FALSE, message=FALSE, warning=FALSE, comment=NA, eval=TRUE, results='asis'>>= 
# ... 
@ 
+0

Dzięki. Czy może to być 'out.extra = 'kąt = c (0,90)'' ponieważ mam dwie wątki i chcę tylko obrócić drugą. – Autumn

+0

Te dwie strony powinny znajdować się w osobnych częściach, jeśli chcesz zadeklarować dla nich różne opcje. –

+0

@Yihui Czy to też działa w dokumentach Rmd? –

Powiązane problemy