5

我有以下 R 代码

<<Q1b1, fig=TRUE>>=  
qqnorm(resid(model1), main=NULL)
@

我想将选项 [keepaspectratio=true, scale = 0.75] 添加到 \includegraphics{} 调用中,以便生成上述 R 代码块

\begin{figure}[ht]
\caption{}
\begin{center}
\includegraphics[keepaspectratio=true, scale = 0.75]{filename.pdf}
\label{fig:1}
\end{center}
\end{figure}

我知道您可以使用 \SweaveOpt{width=x, height=y} 指定宽度和高度,但我想指定比例并让它在生成时保持图形的纵横比。

是否有捷径可寻?

谢谢

4

2 回答 2

9

您可以使用\setkeys{Gin}说明设置 Sweave 文档中每个图形的宽度。例如,文档前言中的以下内容使每个图形宽度为页面上文本宽度的 80%:

\setkeys{Gin}{width=0.8\textwidth}

否则,您可以将include=FALSE参数添加到代码块中,然后\includegraphics手动创建指令。默认情况下,如果你的 Sweave 文件被调用test.Rnw,那么代码块生成的 pdf 文件的名称将是test-Q1b1.pdf. 因此,您可以执行以下操作:

<<Q1b1,fig=true,include=false,echo=false>>=  
qqnorm(rnorm(100))
@

\begin{figure}[ht]
\caption{}
\begin{center}
\includegraphics[keepaspectratio=true,scale=0.1]{test-Q1b1.pdf}
\label{fig:1}
\end{center}
\end{figure}

但是,我对您的示例进行了一些测试,但该scale参数似乎对这里的图没有任何影响。不过,其他人喜欢angle这样做。

于 2011-03-10T13:05:13.507 回答
0

如果您\usepackage{Sweave}的 Sweave 文件中没有序言,它将作为\begin{document}语句之前的最后一行自动插入。因此你需要把

\setkeys{Gin}{width=0.8\textwidth}

,这实际上是 Sweave 样式文件的默认值,如\usepackage{Sweave}.

\begin{document}声明之后。有关详细信息,请参阅 Sweave 文档 ( http://www.statistik.lmu.de/~leisch/Sweave/Sweave-manual.pdf ) 第 4.1.2 节。

于 2013-02-04T19:47:23.407 回答