axis
我有一个带有包含循环的环境的 beamer 框架foreach
。我想使用count
从这种循环派生的索引作为循环内的变量。具体来说,我需要这样的变量来影响图的可见性和标签。我无法相应地进行调整这也不这代码块。我在此提供一个最小(非)工作示例。相关图片是通过运行当前注释的行而不运行(注释)上面的行获得的。
\documentclass[beamer]{standalone}
\usepackage{pgfplots}
\tikzset{
invisible/.style={opacity=0},
visible on/.style={alt={#1{}{invisible}}},
alt/.code args={<#1>#2#3}{%
\alt<#1>{\pgfkeysalso{#2}}{\pgfkeysalso{#3}}
},
}
\begin{document}
\begin{frame}
\begin{center}
\begin{tikzpicture}
\begin{axis}[width=7cm]
\foreach \p [count=\n from 0] in {0.15, 1.15, 2.15} {
\def\pline{(1-(\p*(\x-3))};
\addplot [mark=none, draw=gray, domain=0:4,visible on=<\n>] {\pline} node [pos=0.25] {\n};
%\addplot [mark=none, draw=gray, domain=0:4] {\pline} node [pos=0.25, fill=white] {L};
}
\end{axis}
\end{tikzpicture}
\end{center}
\end{frame}
\end{document}
答案1
您可以使用与https://tex.stackexchange.com/a/667486/36296展现你的曲线。
对于标签,可以使用基于当前幻灯片帧号而不是循环计数器的标签。如果您的页面上还有其他叠加层,请调整值以-1
匹配您想要的标签。
\documentclass[beamer]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usetikzlibrary{overlay-beamer-styles}
\makeatletter
\newcommand*{\foo}{\number\numexpr\beamer@slideinframe-1}
\makeatother
\begin{document}
\begin{frame}
\begin{center}
\begin{tikzpicture}
\begin{axis}[width=7cm]
\foreach \p [count=\n from 1] in {0.15, 1.15, 2.15} {
\def\pline{(1-(\p*(\x-3))};
\xdef\ADDPLOT{%
\noexpand \addplot [mark=none, draw=gray, domain=0:4,visible on=<\n>]
}
\ADDPLOT {\pline} node [pos=0.25,fill=white] {\foo};
}
\end{axis}
\end{tikzpicture}
\end{center}
\end{frame}
\end{document}