gpt4 book ai didi

r - ggplot2图形缓存与knitr

转载 作者:行者123 更新时间:2023-12-05 01:31:57 32 4
gpt4 key购买 nike

我有以下代码按原样工作,但在 cache=T 时不起作用
更改设备没有区别(默认,tikz,cairo)

% \SweaveOpts{fig.path=cache/figure/plot-,cache.path=cache/data/data-,fig.align=center,external=TRUE,fig.show=hold,cache=TRUE,echo=FALSE,pdfcrop=TRUE}

<<message=F,fig.width=9,fig.height=6,out.width=\textwidth,cache=F>>=
grid.newpage()
pushViewport(viewport(layout = grid.layout(2,9)))

d <- ncol(rTSc)
p <- ggplot(melt(coveig),aes(1:d,value,group=variable,col=variable)) +
geom_line() + labs(x="index",y="eigenvalue") +
opts(legend.position = "none")
print(p, vp=viewport(layout.pos.row=1,layout.pos.col=1:4))
p <- ggplot(melt(coreig),aes(1:d,value,group=variable,col=variable)) +
geom_line() + labs(x="index",y="eigenvalue")
print(p, vp=viewport(layout.pos.row=1,layout.pos.col=5:9))

p <- ggplot(melt(coveig.cs),aes(1:d,value,group=variable,col=variable)) +
geom_line() + labs(x="index",y="cumulative eigenvalue") +
opts(legend.position = "none")
print(p, vp=viewport(layout.pos.row=2,layout.pos.col=1:4))
p <- ggplot(melt(coreig.cs),aes(1:d,value,group=variable,col=variable)) +
geom_line() + labs(x="index",y="cumulative eigenvalue")
print(p, vp=viewport(layout.pos.row=2,layout.pos.col=5:9))
@

为什么会这样?
有任何想法吗?

谢谢!

最佳答案

好像重新定义 p是什么阻碍了缓存。尝试将图像保存为单独的图,然后一次将它们推送到视口(viewport)。 (它也使代码更清晰)。

\documentclass[12pt]{article}
\title{Example}

\begin{document}

<<loading,echo=F>>=
library(ggplot2)
library(gridExtra)
@

\section{This is a Section}

<<message=F,fig.width=9,fig.height=6,out.width=\textwidth,cache=T>>=
x <- rnorm(100)
y <- runif(100)
dat <- data.frame(x,y)

grid.newpage()
pushViewport(viewport(layout = grid.layout(2,9)))

p1 <- ggplot(dat, aes(x,y)) + geom_point()
p2 <- ggplot(dat, aes(y,x)) + geom_point()

print(p1, vp=viewport(layout.pos.row=1,layout.pos.col=1:9))
print(p2, vp=viewport(layout.pos.row=2,layout.pos.col=1:9))
@

\end{document}

关于r - ggplot2图形缓存与knitr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9429642/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com