Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 在swave/pgfsweave编译期间避免显示图形_R_Sweave - Fatal编程技术网

R 在swave/pgfsweave编译期间避免显示图形

R 在swave/pgfsweave编译期间避免显示图形,r,sweave,R,Sweave,使用Swave/pgfsweave进行编译时,每次在R中创建图形时,图形都会显示在图形窗口中(在Swave编译过程中)。这在很多情况下都很有用,因为我可以看到在编译文档时这些数字是什么样子的 但当我通过ssh编译一个大文档时,这可能会非常慢。有没有办法告诉swave/pgfsweave在编译过程中避免显示该图(不过我还是希望最终的pdf文档中显示该图)。一个选项可以是 <<label=myplotlabel, fig=TRUE, include=FALSE>>= grap

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

但当我通过ssh编译一个大文档时,这可能会非常慢。有没有办法告诉swave/pgfsweave在编译过程中避免显示该图(不过我还是希望最终的pdf文档中显示该图)。

一个选项可以是

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

对于交互式会话,
figs.only
swave选项控制此行为。要仅将图形打印到目标图形文件(而不是控制台图形窗口),请设置
figs.only=TRUE

帮助文件中所述:

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


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

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


您只需键入
R CMD swave mydoc.Rnw即可从命令行运行R,也可以通过批处理文件或大型项目的makefile来运行R。我已经开始为我的许多Swave文档使用makefiles,因为它可以处理依赖项,可以在自身之后清除,以及更多。图要在此处提及R中的默认图形设备:

现在,您可以看到:

在R 2.14.1(尚未发布)之后,您将能够将默认设备设置为空PDF设备,这既安全又快速:

我建议(2)因为它是自包含的(所以总是可复制的);(1)不好,(3)更差。@Yihui--感谢您添加了它。另外(尽管它有点离题)非常感谢您在Formator软件包方面所做的工作。
\begin{figure}[h]
   \includegraphics[width=6cm, height=6cm]{myplotlabel}
   \caption{My Plot}
   \label{fig:label}
\end{figure}