我正在使用带有情节的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}
Run Code Online (Sandbox Code Playgroud)
我想将第二页和图表都旋转90度.我知道我可以在一页上使用它:
\usepackage{pdflscape}
\begin{landscape}
....
\end{landscape}
Run Code Online (Sandbox Code Playgroud)
但这两个图由grid.newpage()在一个函数内排列.我怎样才能做到这一点?非常感谢!
Bra*_*sen 13
我认为你可以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'>>=
# ...
@
Run Code Online (Sandbox Code Playgroud)