TikZ \ foreach tuple in PGF

Oct 21 2020

Bir veri listesi çizmek ve açıklama girişlerine göre eklemek istiyorum. Paket \foreachiçinde uygulanan pgfforve TikZ ile yüklenen tuples için kullanmayı denedim . Ne yazık ki, etiketi tanımlayan ikinci değişken \clabelLaTeX için tanımlanmamış görünmektedir. Bu yapı dışarıda kullanılırsa işe yarıyor gibi görünüyor \begin{axis} ... \end{axis}. TikZ / PGF ile ilgili önemli bir şeyi özlüyor muyum?

Minimal örnek

\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}

Yanıtlar

1 StevenB.Segletes Oct 21 2020 at 18:47

Göstergenin kendisi grafikler tamamlandıktan sonra oluşturulduğundan \clabel, argüman olarak genişletmeniz gerekir \addlegendentry. Bu noktaya kadar, yerel değeri \clabelkaybolmuştur.

\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}