我对 tikz 还不熟悉,第一次尝试使用 \onslide 命令。我不明白为什么我的代码没有产生错误,但也没有效果(在 3 张幻灯片上生成 3 个包含所有内容的相同图表)。
这是我的 MWE:
\documentclass[10pt]{beamer}
\usetheme{Madrid}
% Plot
\usepackage{tikz}
\usepackage{tkz-euclide} % Coordinate axes
\usepackage{pgfplots} % Another axes package
\pgfdeclarelayer{background}% determine background layer
\pgfsetlayers{background,main}% order of layers
\begin{document}
\begin{frame}{Sample}
\begin{figure}
\centering
\pgfplotsset{xmin=0, xmax=1, ymin=0, ymax=1}
\pgfplotsset{compat=1.17}
\begin{tikzpicture}[scale=1]
\begin{axis}[domain=0:1,
ylabel near ticks,
xlabel near ticks,
xlabel={$m$},
ylabel={$n$},
clip mode=individual]
\addplot[black,dashed,domain=0:1,smooth] plot ({\x}, {\x });
\addplot[black,thick,domain=0:1,smooth,samples=500] plot ({ 3*\x/(3*\x + (1-\x)) }, {\x});
\node[anchor=south] at (0.75,0.55) {$\color{black}g_b$};
\onslide<2->{
\addplot[black,thick,domain=0:1,smooth,samples=500] plot ({ 9*\x/(9*\x + (1-\x)) }, {\x});
\node[anchor=south] at (0.8,0.4) {$\color{black}g_b^2$}; }
\onslide<3->{
\addplot[black,thick,domain=0:1,smooth,samples=500] plot ({ 81*\x/(81*\x + (1-\x)) }, {\x});
\node[anchor=south] at (0.9,0.2) {$\color{black}g_b^3$}; }
\end{axis}
\end{tikzpicture}
\end{figure}
\end{frame}
\end{document}
答案1
嗯,我认为可以改成
\only<overlay specification>{\addplot { ... };}
有效。希望能够帮助其他遇到此问题的人!