我想使用 knitr 并排绘制 2 个图形。我知道我可以使用 par(mfrow=c(1,2)),但我已经做了很多工作来使图形保持原样。我见过这个 (带有文本和针织块的两列布局),但它对我来说不起作用。
理想情况下,我想做这样的事情(但失败了):
\documentclass[a4paper,11pt]{article}
\begin{document}
\begin{frame}
\begin{columns}
\begin{column}{.5\linewidth}
<<echo=FALSE,eval=TRUE,out.width='4cm',out.height='4cm'>>=
plot(1:10)
@
\end{column}
\begin{column}{.5\linewidth}
<<echo=FALSE,eval=TRUE,out.width='4cm',out.height='4cm'>>=
plot(1:10)
@
\end{column}
\end{columns}
\end{frame}
\end{document}
使用 Sweave,我可以执行以下操作:
<<plot1, echo=FALSE,eval=TRUE>>=
plot(1:10)
@
\begin{figure}[htbp]
\begin{minipage}[h]{0.5\linewidth}
\begin{center}
<<label=figplotFlowSingle,echo=FALSE>>=
<<plot1>>
@
\subcaption{Default plot1}
\label{fig:plot1}
\end{center}
\end{minipage}
\begin{minipage}[h]{0.5\linewidth}
\begin{center}
<<plot2, echo=FALSE,eval=TRUE>>=
plot(1:10)
@
<<label=plot22,echo=FALSE>>=
<<plot2>>
@
\subcaption{Default plot2}
\label{fig:plot2}
\end{center}
\end{minipage}
\caption{}
\label{fig:plot1and2}
\end{figure}
答案1
如果您想要的是两个并排的数字,您可以将代码放在一个块中并设置fig.show='hold'
适当的宽度,例如
\documentclass{article}
\begin{document}
<<test, out.width='4cm', out.height='4cm', fig.show='hold'>>=
plot(1:10)
plot(rnorm(100))
@
\end{document}
如果要将图形居中,只需添加选项fig.align='center'
。如果要添加标题,可以使用fig.cap
。请参阅文档以了解所有可能的选项这里。