避免在sweave / pgfsweave编译期间显示的数字

时间:2011-11-26 03:34:30

标签: r sweave

使用sweave / pgfsweave进行编译时,每次在R中创建一个图形时,它都会在图形窗口中显示(在sweave编译过程中)。这在许多情况下很有用,因为我可以看到在编译文档时数字的样子。

但是当我通过ssh编译一个大文档时,这可能会很慢。有没有办法告诉sweave / pgfsweave以避免在编译期间显示图形(我仍然想要最终的pdf文档中的图形)。

4 个答案:

答案 0 :(得分:4)

对于交互式会话,figs.only Sweave选项可控制此行为。要仅将图形绘制到目标图形文件(并且到控制台图形窗口),请设置figs.only=TRUE

RweaveLatex帮助文件中所述:

  

figs.only:逻辑('FALSE')。默认情况下,每个图块都会运行             一次,然后重新运行每种选定类型的图形。那             将打开第一个数字的默认图形设备             chunk并使用该设备进行首次评估             后续的块。如果此选项为true,则为数字块             仅针对每种选定类型的图形运行,其中a             新图形设备打开然后关闭。

与其他Sweave选项一样,您可以设置此选项:(1)用于当前编译(例如Sweave("example.Rnw", figs.only=TRUE);(2)在.Rnw文件中,使用\SweaveOpts{figs.only=TRUE};或者(3)作为全局默认值,将SWEAVE_OPTIONS="figs.only=TRUE"放入,例如$R_HOME/etc/Renviron.site

答案 1 :(得分:2)

figs.only是正确的方法,我也想提一下R中的默认图形设备:

现在您可以看一下:http://yihui.name/en/2010/12/a-special-graphics-device-in-r-the-null-device/

在R 2.14.1(尚未发布)之后,您将能够将默认设备设置为空PDF设备,既安全又快速:https://github.com/yihui/knitr/issues/9

答案 2 :(得分:1)

如果您从命令行而不是在交互式会话中进行扫描,则不会在交互式图形窗口中生成图形。

只需键入R CMD Sweave mydoc.Rnw或通过批处理文件或大型项目的makefile,即可从命令行运行R.我已经开始在我的许多sweave文档中使用makefile,因为它处理依赖关系,可以清理自己以及更多。

答案 3 :(得分:0)

一个选项可能是

<<label=myplotlabel, fig=TRUE, include=FALSE>>=
graph code
@

然后

\begin{figure}[h]
   \includegraphics[width=6cm, height=6cm]{myplotlabel}
   \caption{My Plot}
   \label{fig:label}
\end{figure}