PGF 中的 TikZ 的 \foreach 元组

PGF 中的 TikZ 的 \foreach 元组

我想绘制一个数据列表并添加相应的图例条目。我尝试使用\foreach在包中实现pgffor并加载到 TikZ 中的元组。不幸的是,描述标签的第二个变量\clabel对于 LaTeX 似乎未定义。如果在外部使用,此构造似乎有效\begin{axis} ... \end{axis}。我是否错过了有关 TikZ/PGF 的一些重要信息?

最小示例

\documentclass[tikz,border=10pt]{standalone}
\usepackage{pgfplots}

\pgfplotsset{
    compat=1.16,
}

\begin{document}
\begin{tikzpicture}

    \begin{axis}[]
      \foreach \c/\clabel in {1/a, 2/b}
      {
        \addplot  {\c^2};
        \addlegendentry{ \clabel }
      };
    \end{axis}


\end{tikzpicture}
\end{document}

答案1

您需要扩展\clabel的参数\addlegendentry,因为图例本身是在绘图完成后创建的。到那时, 的局部值\clabel已经丢失。

\documentclass[tikz,border=10pt]{standalone}
\usepackage{pgfplots}

\pgfplotsset{
    compat=1.16,
}

\begin{document}
\begin{tikzpicture}

    \begin{axis}[]
      \foreach \c/\clabel in {1/a, 2/b}
      {
        \addplot  {\c^2};
        \expandafter\addlegendentry\expandafter{\clabel};
      }
    \end{axis}


\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容