我尝试从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中的Compile 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
答案 0 :(得分:1)
不确定这是您问题的原因,但如果您使用knitr进行编织,我认为您必须删除\SweaveOpts{concordance=TRUE}
行。
答案 1 :(得分: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}
也许请阅读有关如何将图表集成到输出中的knitr选项fig.keep=
。