我正在创建一个 beamer 演示文稿,我想用 pgfplots 制作一个动画图。这是图形的 MWE:
\documentclass{beamer}
\usepackage{tikz,pgfplots}
\begin{document}
\begin{frame}
\begin{figure}
\begin{tikzpicture}
\begin{axis}[%
width=2in,
height=2in,
scale only axis,
minor tick num=10,
xmin=1,
xmax=10,
ymin=1,
ymax=10,
axis x line*=bottom,
axis y line*=left,
]
\plot[mark=*, mark options={fill=black}]
coordinates{
(1, 1)
(2, 2)
(3, 3)
(4, 4)
(5, 5)
(6, 6)
(7, 7)
(8, 8)
(9, 9)
(10, 10)
};
\end{axis}
\end{tikzpicture}
\end{figure}
\end{frame}
\end{document}
我想让点以动画形式连续出现。我不知道该怎么做,有人能帮我吗?提前谢谢。
答案1
pdflatex
在第一个文件上运行anim.tex
:
\documentclass{beamer}
\usepackage{tikz,pgfplots,multido}
\usepackage[active,tightpage]{preview}
\PreviewEnvironment{tikzpicture}
\begin{document}
\multido{\i=0+1}{10}{%
\begin{tikzpicture}
\begin{axis}[
width=2in,
height=2in,
scale only axis,
minor tick num=10,
xmin=1,
xmax=10,
ymin=1,
ymax=10,
axis x line*=bottom,
axis y line*=left,
]
\plot[mark=*, mark options={fill=black},
x filter/.code={\pgfmathparse{#1<=\i ? #1 : "nan"}}]
coordinates{
(1, 1)
(2, 2)
(3, 3)
(4, 4)
(5, 5)
(6, 6)
(7, 7)
(8, 8)
(9, 9)
(10, 10)
};
\end{axis}
\end{tikzpicture}
}
\end{document}
然后按您想要的方式调用这个,但与第一个位于同一目录中:
\documentclass{beamer}
\usepackage{animate}
\begin{document}
\begin{frame}
\frametitle{Animation}
\begin{center}
\animategraphics[palindrome]{12}{anim}{}{}
\end{center}
\end{frame}
\end{document}
答案2
不需要两个单独的源文件。
参数化(我=0...9)tikzpicture
可以放入环境\multiframe
内的代码块中animateinline
。
请注意,由于某种原因,该选项必须与的环境[fragile]
一起使用。beamer
frame
\documentclass{beamer}
\usepackage{animate}
\usepackage{tikz,pgfplots}
\begin{document}
\begin{frame}[fragile]
\begin{animateinline}[palindrome,controls]{12}
\multiframe{10}{i=0+1}{%
\begin{tikzpicture}
\begin{axis}[
width=2in,
height=2in,
scale only axis,
minor tick num=10,
xmin=1,
xmax=10,
ymin=1,
ymax=10,
axis x line*=bottom,
axis y line*=left,
]
\plot[
mark=*, mark options={fill=black},
x filter/.code={\pgfmathparse{#1<=\i ? #1 : "nan"}}
] coordinates {
(1, 1)
(2, 2)
(3, 3)
(4, 4)
(5, 5)
(6, 6)
(7, 7)
(8, 8)
(9, 9)
(10, 10)
};
\end{axis}
\end{tikzpicture}
}
\end{animateinline}
\end{frame}
\end{document}