我想pgfplots
在使用包 制作的演示文稿中显示使用包制作的图表的 y 轴标签beamer
。我尝试了几种替代方案(\alt
、\only
等),但没有成功。如何做到这一点?
下面是一个失败的例子,其中所有标签都一起出现在第二张幻灯片中的单个刻度处。
\documentclass{beamer}
\usepackage{pgfplots}
\begin{document}
\begin{frame}
\begin{tikzpicture}
\begin{semilogyaxis}[log basis y=10,
ytickten={2,...,6},
yticklabels={\alt<2>{a,b,c,d,e}{}}]
\addplot[ybar,fill,color=green] coordinates {(-1,1e2)};
\addplot[ybar,fill,color=red] coordinates {(1,1e6)};
\end{semilogyaxis}
\end{tikzpicture}
\end{frame}
\end{document}
答案1
您可以使用yticklabel
而不是yticklabels
。它使用一个 latex 命令来生成每个标签,而不是标签列表。请参阅pgfplots
手动的。
\documentclass{beamer}
\usepackage{pgfplots}
\begin{document}
\begin{frame}
\begin{tikzpicture}
\begin{semilogyaxis}[log basis y=10,
ytickten={2,...,6},
yticklabel={$\visible<2>{\ifcase\ticknum\relax a\or b\or c\or d\or e \else d\fi}$}]
\addplot[ybar,fill,color=green] coordinates {(-1,1e2)};
\addplot[ybar,fill,color=red] coordinates {(1,1e6)};
\end{semilogyaxis}
\end{tikzpicture}
\end{frame}
\end{document}
答案2
这是一个选择。它可能不是最理想的,但它有效。
\documentclass{beamer}% http://ctan.org/pkg/beamer
\usepackage{pgfplots}% http://ctan.org/pkg/pgfplots
\begin{document}
\begin{frame}
\begin{tikzpicture}
\begin{semilogyaxis}[log basis y=10,
ytickten={2,...,6},
yticklabels={
\only<1>{\phantom{a}}\only<2>{a},
\only<1>{\phantom{b}}\only<2>{b},
\only<1>{\phantom{c}}\only<2>{c},
\only<1>{\phantom{d}}\only<2>{d},
\only<1>{\phantom{e}}\only<2>{e}}]
\addplot[ybar,fill,color=green] coordinates {(-1,1e2)};
\addplot[ybar,fill,color=red] coordinates {(1,1e6)};
\end{semilogyaxis}
\end{tikzpicture}
\end{frame}
\end{document}
我想,重要的是tikzpicture
从一张幻灯片到下一张幻灯片保持静止。