使用 beamer 揭开 pgfplots 中的标签

使用 beamer 揭开 pgfplots 中的标签

我想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从一张幻灯片到下一张幻灯片保持静止。

相关内容