期间显示数字时(在sweave编译过程)与sweave/pgfsweave,每一个数字是R中创建它被示出在图形窗口时间进行编译。这在很多情况下是有用的,因为我可以看到文档正在编译时的数字。避免sweave/pgfsweave编译
但是当我通过SSH编译一个大型文档这可能会很慢。有没有办法告诉sweave/pgfsweave避免在编译过程中显示图形(尽管如此,我仍然希望在最终的pdf文档中显示图形)。
期间显示数字时(在sweave编译过程)与sweave/pgfsweave,每一个数字是R中创建它被示出在图形窗口时间进行编译。这在很多情况下是有用的,因为我可以看到文档正在编译时的数字。避免sweave/pgfsweave编译
但是当我通过SSH编译一个大型文档这可能会很慢。有没有办法告诉sweave/pgfsweave避免在编译过程中显示图形(尽管如此,我仍然希望在最终的pdf文档中显示图形)。
一种选择是
<<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}
对于互动环节中,figs.only
Sweave选项控制这种行为。要将数字仅绘制到目标图形文件(并将而不是绘制到控制台图形窗口),请设置figs.only=TRUE
。
正如RweaveLatex
帮助文件中解释说:
figs.only:逻辑(“假”)。默认情况下,每个图块都运行 一次,然后针对每种选定类型的图形重新运行。这 将打开一个默认的图形设备的第一个数字 块,并使用该设备的所有 后续块的第一次评估。如果此选项为真,则图块 仅针对每个选定类型的图形运行,为此,打开然后关闭一个新的图形设备 。
与其他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
如果您在命令行中,而不是在交互式会话sweave,图形不是在一个交互式图形窗口产生。
你可以在命令行通过刚刚运行R.键入R CMD Sweave mydoc.Rnw
或通过批处理文件或makefile文件r更大的项目。我已经开始为我的许多sweave文档使用makefile,因为它可以处理依赖关系,可以自行清理以及更多。
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)不好,(3)差。 –
@易辉 - 感谢您的补充。另外(虽然它有点偏离主题),非常感谢您在formatR软件包上的工作。 –