TikZ's \ foreach tuple di PGF
Oct 21 2020
Saya ingin memplot daftar data dan menambahkan entri legenda yang sesuai. Saya mencoba menggunakan \foreachuntuk tupel yang diimplementasikan dalam pgfforpaket dan dimuat dengan TikZ. Sayangnya, variabel kedua yang mendeskripsikan label \clabeltampaknya tidak ditentukan untuk LaTeX. Konstruksi ini sepertinya berfungsi jika digunakan di luar \begin{axis} ... \end{axis}. Apakah saya melewatkan sesuatu yang penting tentang TikZ / PGF?
Contoh 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}
Jawaban
1 StevenB.Segletes Oct 21 2020 at 18:47
Anda perlu memperluas \clabelsebagai argumen \addlegendentry, karena legenda itu sendiri dibuat setelah plot selesai. Pada saat itu, nilai lokal \clabeltelah hilang.
\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}
Jana Duggar: Semua yang Dia Katakan Tentang Cinta dan Jendela 5 Tahunnya untuk Menemukan 'Yang Satu'