我想使用knitr軟件包和塊選項fig.show='animate'
在投影儀中創建動畫,其中數字被覆蓋而不是替換爲\ multiinclude默認情況下的工作方式。使用knitr在投影儀中疊加動畫
一個最小的非工作示例將如下(Rnw文件),我希望每個點都被逐一添加到動畫中的現有圖。
\documentclass{beamer}
\usepackage{animate}
\begin{document}
\begin{frame}[fragile]
<<fig.show='animate', fig.width=5, fig.height=5, size='tiny', out.width='.8\\linewidth', fig.align='center', echo=FALSE>>=
x = 1:2
plot(x,x,type="n")
for (i in 1:length(x)) {
points(x[i],x[i])
}
@
\end{frame}
\end{document}
從看knitr graphics manual,它規定地塊的兩個來源是plot.new()
和grid.newpage()
,但有一個腳註看到?recordPlot
。所以,我試圖把recordPlot()
的points
命令後(並且也通過par(bg=NA)
增加一個透明的背景,但這並沒有工作,因爲只有創建一個單一的情節。
的最小工作示例如下
\documentclass{beamer}
\usepackage{animate}
\begin{document}
\begin{frame}[fragile]
<<fig.show='animate', fig.width=5, fig.height=5, size='tiny', out.width='.8\\linewidth', fig.align='center', echo=FALSE, fig.keep='all'>>=
x = 1:2
plot(x,x,type="n")
for (i in 1:length(x)) {
for (j in 1:i) points(x[j],x[j])
}
@
\end{frame}
\end{document}
但這看起來像是過度殺傷,因爲每個圖都重繪了圖和前面的所有點。
是否有某種方法可以通過j
?或以某種其他方式來覆蓋beamer/knitr中的圖塊?如果是,上面的代碼可以是mo嗎?有沒有做到這一點?
嘗試'fig.keep ='all'' – kohske
這是一個很好的建議,我沒有嘗試過。包括'fig.keep ='all''允許我簡化最小工作示例(我已更新),但在非工作示例中,它只提供了兩個圖:一個沒有點,一個包含所有點而不是依次添加每個點的圖序列,因爲R將循環視爲單個表達式。 – jaradniemi
我不需要使用R代碼中的庫(動畫)嗎? – skan