R knitr - 直接在定义的位置包含图形(在R代码中呈现的ggplot2对象)

时间:2013-09-10 16:26:59

标签: r knitr

我正在使用knitr开始我的第一步,尝试生成一个raport。在raport中,我包含R代码,该代码生成一个ggplot2对象,我希望将其直接包含在某些文本下面。为了使它更加详细,图形是一对两个分开的图,我想要平行放置,一个接一个。

到目前为止,我一直在使用R代码处理:生成并保存.pdf图片,然后从文件中读取此图片并通过\includegraphics命令将其包含在报告中。但是,它不再是我的解决方案 - 我希望图表与R代码的报告同时生成(特别是:不要将其保存为.pdf )

但是,我尝试使用的代码无法正常工作 - 它会生成2个图,但它们却是:

1)错误放置 - 下面2页(甚至不是文档的末尾!)

2)我不知道如何将它们放在一行中,具有定义的大小

请帮忙!先感谢您!! [在我不正常的R代码下面

\textit{Pic 1 title} Some pic description

\begin{figure}[h]


\subfigure[pic1 name]{

<<echo = F, eval = T, message=F, fig=TRUE>>=
# a function returning a ggplot2 object (with a proper parameters instead of "...")
plot.matrix.from.file(...)
@

% below there is a fragment of the code I used before (which includes a graphics directly from a .pdf file)
%\includegraphics[scale=0.4]{data/simulated.data/obs_pred_mean_Gini_r.pdf}
\label{pic1 label}
}


\subfigure[pic2 name]{

<<echo = F, eval = T, message=F>>=
# a function returning a ggplot2 object (with a proper parameters instead of "...")
plot.matrix.from.file(...)
@

% below there is a fragment of the code I used before (which includes a graphics directly from a .pdf file)
%\includegraphics[scale=0.4]{data/simulated.data/obs_pred_var_Gini_r.pdf}

\label{pic2 label}
}
\caption{caption for the pair of plots}


\end{figure}

1 个答案:

答案 0 :(得分:3)

我发现使用subcaption包时没有任何问题。请参阅example 104

\documentclass{article}
\usepackage{subcaption}
\begin{document}

You can include sub-figures using the \textbf{subcaption} package. For example,
Figure \ref{fig:test} contains \ref{fig:test-a} and \ref{fig:test-b}.

\begin{figure}
  \begin{subfigure}{.5\textwidth}
  <<test-a, echo=FALSE, results='asis', fig.width=5, fig.height=5>>=
  plot(1:10)
  @
  \caption{This is Figure a. \label{fig:test-a}}
  \end{subfigure}
  \begin{subfigure}{.5\textwidth}
  <<test-b, echo=FALSE, results='asis', fig.width=5, fig.height=5>>=
  plot(rnorm(100))
  @
  \caption{This is Figure b. \label{fig:test-b}}
  \end{subfigure}
\caption{This figure contains two subfigures. \label{fig:test}}
\end{figure}

\end{document}

按预期输出:

subfigure and knitr