我有以下投影仪幻灯片:
\documentclass[10pt]{beamer}
\usepackage{tikz}
\usepackage{pgfplots}
\begin{document}
\begin{frame}
\begin{figure}[h]
\centering
\begin{tikzpicture}
\begin{axis}[
]
\addplot[dashed, const plot mark left] coordinates {
(0, 0)
(1, 0)
(2, 0)
(3, 0)
(4, 0)
(5, 0)
(6, 0)
(7, 5)
(8, 7)
(9, 0)
(10, 0)
(11, 0)
(12, 0)
(13, 0)
(14, 0)
};
\end{axis}
\end{tikzpicture}
\end{figure}
\end{frame}
\end{document}
当我前进到“下一张幻灯片”时,我想让情节向右移动 1 个单位,但我想保持相同的幻灯片编号。
我可以通过一堆连续的帧来伪造这种效果,其中我只需将x
图中的所有坐标增加 1 个单位,但一定有更好的方法。
有人可以建议我可以研究的东西吗?
答案1
您可以使用overlay-beamer-styles
库并使用覆盖来保持相同帧号:
\documentclass[10pt]{beamer}
\usepackage{tikz}
\usepackage{pgfplots}
\usetikzlibrary{overlay-beamer-styles}
\begin{document}
\begin{frame}
\begin{figure}
\begin{tikzpicture}
\begin{axis}[
]
\addplot[
dashed,
const plot mark left,
alt=<2>{xshift=0.4cm}{},
alt=<3>{xshift=0.8cm}{}
] coordinates {
(0, 0)
(1, 0)
(2, 0)
(3, 0)
(4, 0)
(5, 0)
(6, 0)
(7, 5)
(8, 7)
(9, 0)
(10, 0)
(11, 0)
(12, 0)
(13, 0)
(14, 0)
};
\end{axis}
\end{tikzpicture}
\end{figure}
\end{frame}
\end{document}
(其值0.4cm
及其倍数可能需要微调,这只是一个粗略的猜测)
答案2
如果图表发生变化,基础数据也必须随之变化。可以使用基础数据进行过滤x filter/.expression={}
来实现这一点。如果绘制了合适的数据,则无需手动调整,而不是在水平上移动图表tikzpicture
。
\documentclass[10pt]{beamer}
\usepackage{tikz}
\usepackage{pgfplots}
\begin{document}
\begin{frame}
\foreach \i in {1,...,7} {\only<\i>{%
\begin{figure}
\begin{tikzpicture}
\begin{axis}[
]
\addplot[
dashed, const plot mark left,
unbounded coords=jump,
x filter/.expression={x+\i-1>14 ? nan : x+\i-1}
] coordinates {
(-\i+1, 0)
(0, 0)
(1, 0)
(2, 0)
(3, 0)
(4, 0)
(5, 0)
(6, 0)
(7, 5)
(8, 7)
(9, 0)
(10, 0)
(11, 0)
(12, 0)
(13, 0)
(14, 0)
};
\end{axis}
\end{tikzpicture}
\end{figure}
}}
\end{frame}
\end{document}