我想绘制一个数据列表并添加相应的图例条目。我尝试使用\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}