2

我尝试从 Sweave 切换到 knitr,但我遇到了一个问题,即在一个块中使用多个图。这里有一个例子:让这个.Rnw 简单文件(名为Essai.Rnw)。当然,pdf中只显示了一个图:

\documentclass{article}

\begin{document}
\SweaveOpts{concordance=TRUE}

<<fig=TRUE>>=
plot(1:10, exp(1:10))
plot(1:10, log(1:10))
@

\end{document}

我使用以下方法将其转换为 knitr 格式:

library("knitr", lib.loc="/Library/Frameworks/R.framework/Versions/3.0/Resources/library")
Sweave2knitr("Essai.Rnw")

我编辑文件来得到这个:

\documentclass{article}

\begin{document}
\SweaveOpts{concordance=TRUE}

<<include=FALSE>>=
require(knitr)
opts_chunk$set(concordance=TRUE)
@
<<>>=
plot(1:10, exp(1:10))
plot(1:10, log(1:10))
@
\end{document}

在 Rstudio 全局首选项中,我使用 Knitr 设置 Weave Rnw 文件,当我使用 Rstudio 中的编译 pdf 按钮生成 pdf 文件时,我只得到一个图,而不是我预期的 2。

这是我的 sessionInfo()

> sessionInfo()
R version 3.0.1 Patched (2013-06-10 r62935)
Platform: x86_64-apple-darwin10.8.0 (64-bit)

locale:
[1] fr_FR.UTF-8/fr_FR.UTF-8/fr_FR.UTF-8/C/fr_FR.UTF-8/fr_FR.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] knitr_1.2

loaded via a namespace (and not attached):
[1] digest_0.6.3   evaluate_0.4.3 formatR_0.7    stringr_0.6.2  tools_3.0.1   
4

2 回答 2

1

不确定这是你问题的原因,但如果你用 knitr 编织它,我认为你必须删除\SweaveOpts{concordance=TRUE}线。

于 2013-06-12T07:30:50.287 回答
1

如果我编译以下内容,我会得到两个图。请注意我所做的删除。您的原始代码没有在我的系统上编译。

\documentclass{article}
\begin{document}

<<include=FALSE>>=
opts_chunk$set(concordance=TRUE)
@
<<>>=
plot(1:10, exp(1:10))
plot(1:10, log(1:10))
@
\end{document}

也许阅读有关fig.keep=如何将绘图集成到输出中的 knitr 选项。

于 2013-06-12T07:36:38.843 回答