如何在 \addplot 选项中使用命令

如何在 \addplot 选项中使用命令

我如何在选项中使用命令\addplot?我猜我必须找到正确的扩展顺序。

下面的例子说明了这个问题。我不是寻找一种解决方法(我自己可以做),但寻找一种使用正确组合\expandafter和类似命令的方法。

\documentclass{article}

\usepackage[svgnames]{xcolor}
\usepackage{pgfplots}

\begin{document}

\begin{tikzpicture}
\begin{axis}
\foreach \L/\C in {-8/Red,-4/Magenta,-2/Pink,0/Black,2/Beige,4/LightGreen,8/Green} 
 \addplot[smooth,domain=0:1,color=\C]{ \L*x)  };
\end{axis}
\end{tikzpicture}


\end{document}

答案1

对于评论来说太长了,而且可能偏离主题,但很好。使用另一种循环,您将不必执行任何\expandafter\edef操作(前者并不总是可行的,或者需要几十个\expandafter)。

\documentclass{article}

\usepackage[svgnames]{xcolor}
\usepackage{pgfplots}

\usepackage{xinttools}
\begin{document}

\begin{tikzpicture}
\begin{axis}
  \xintForpair #1#2 in {(-8, Red), (-4, Magenta), (-2, Pink), (0, Black), (2,
    Beige), (4, LightGreen), (8, Green)} 
\do {\addplot[smooth,domain=0:1,color=#2]{#1*x) };}
\end{axis}
\end{tikzpicture}

\end{document}

该语法不像's,并且不支持 \foreach特定类型的语法,但它确实有更繁琐的数字等效项,但没有字母等效项(我认为接受)。1, 3, ..., 10\foreacha, b, ..., f

在此处输入图片描述

相关内容