Tuple \ foreach de TikZ dans PGF
Oct 21 2020
Je voudrais tracer une liste de données et ajouter des entrées de légende en fonction. J'ai essayé d'utiliser \foreachpour les tuples qui sont implémentés dans le pgfforpackage et chargés avec TikZ. Malheureusement, la deuxième variable décrivant l'étiquette \clabelsemble indéfinie pour LaTeX. Cette construction semble fonctionner si elle est utilisée à l'extérieur \begin{axis} ... \end{axis}. Est-ce que je rate quelque chose d'essentiel concernant TikZ / PGF?
Exemple minimal
\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}
Réponses
1 StevenB.Segletes Oct 21 2020 at 18:47
Vous devez développer \clabelcomme argument pour \addlegendentry, car la légende elle-même est créée une fois les tracés terminés. À ce stade, la valeur locale de \clabela été perdue.
\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}