使用颜色进行 foreach 会导致“未定义的控制序列”

使用颜色进行 foreach 会导致“未定义的控制序列”

[\forcol]例如,当我从命令中删除可选参数\addplot或将其更改为 时red,以下 MWE 运行良好。虽然我希望曲线具有与列表中定义不同的颜色{1/black,2/red,3/green,4/blue,5/orange},所以我尝试了以下方法,但随后它抛出了错误

“!未定义控制序列。\end{axis}”

\documentclass{article}
\usepackage{xcolor}
\usepackage{pgfplots}
\begin{document}
  \begin{tikzpicture}
    \begin{axis}
      \foreach \foridx/\forcol in {1/black,2/red,3/green,4/blue,5/orange}{
            \addplot[\forcol]{x^\foridx};
      }
    \end{axis}
  \end{tikzpicture}
\end{document}

我犯了什么错误?我希望有此功能来设置一个用于绘制许多数据文件的命令。

答案1

您可以尝试一些\expandafter...语句来扩展\foreach循环。\foreach在我看来,循环可能相当棘手,这是由于\forcol宏的定义方式所致pgffor

\documentclass{article}
\usepackage{xcolor}
\usepackage{pgfplots}
\begin{document}
  \begin{tikzpicture}
    \begin{axis}
     \pgfplotsforeachungrouped \foridx/\forcol in {1/black,2/red,3/green,4/blue,5/orange}{
            \expandafter\addplot\expandafter[\forcol]{x^\foridx};
      }
    \end{axis}
  \end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容