簡體   English   中英

使用knitr時如何旋轉多個圖塊?

[英]How to rotate one plot out of many when using knitr?

我正在使用帶有情節的knitr。 我想將其中一個旋轉90度。 例如:

\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}

我想將第二頁和圖表都旋轉90度。 我知道我可以在一頁上使用它:

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

但這兩個圖由grid.newpage()在一個函數內排列。 我怎樣才能做到這一點? 非常感謝!

我想你可以在塊選項中使用out.extra

來自knitr docs:http: //yihui.name/knitr/options

out.extra :( NULL;字符)數字的額外選項,例如LaTeX輸出中的out.extra ='angle = 90'將圖形旋轉90度; 它可以是任意字符串,例如,您可以在此選項中編寫多個圖形選項; 它也適用於HTML圖像(額外的選項將被寫入標簽,例如out.extra ='style =“display:block;”')

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM