Re: \foreach e definizione di un colore dentro {axis}

#84821
Up
0
Down
::

cfiandra” post=84230Io, in genere, quando vedo un [tt]\expandafter[/tt] prendo male (vuoi perché riconosco quanto siano indispensabili per certe cose, vuoi perché mi riprometto sempre di dedicare del tempo per imparare e… devo ancora trovare tempo).

🙂 Ti chiedo scusa per quegli [tt]\expandafter[/tt] e tutto il codice di contorno… In questo caso mi servono perché leggo diverse misure da un unico file, raccolte dai comandi [tt]\measurements{i}[/tt].

Quindi, questa non è una risposta proprio direttissima al problema, ma un subdolo modo per ovviare 😀

Grazie soprattutto al fatto che [tt]pgfplots[/tt] ha quella comodissima opzione [tt]cycle list[/tt] che fa il lavoro automaticamente. Quindi io avrei fatto: `
\documentclass[png,tikz,border=10pt]{standalone}

\usepackage{amsmath}
\usepackage{pgfplots}
\pgfplotsset{compat=1.7}
\pgfplotstableset{format=inline, row sep=crcr}
\newcommand*\measurement[2]{%
\edef\next{\noexpand
\pgfplotstableread{\unexpanded{#2}}{\expandafter\noexpand\csname measurements#1\endcsname}
}\next
}

\begin{document}

\measurement{0}{
0 0 \\
1 397 \\
2 3415 \\
3 3629 \\
4 3811 \\
}
\measurement{1}{
0 0 \\
1 365 \\
2 884 \\
3 1341 \\
4 1768 \\
}
\measurement{2}{
0 0 \\
1 1555 \\
2 2195 \\
3 2561 \\
4 2653 \\
}

\measurement{3}{
0 0 \\
1 675 \\
2 1864 \\
3 2322 \\
4 2512 \\
}

\pgfplotscreateplotcyclelist{wondeful-list}{
{red!65!orange},
{green!70!blue},
{blue!60!cyan},
{magenta!35!red},
{yellow!80!gray},
}

\begin{tikzpicture}
\begin{axis}[
xlabel={Packet ID},
ylabel={Cumulative dispersion ($\mu s$)},
xmin=0, ymin=0, xmax=4, ymax=4000,
cycle list name=wondeful-list,
]
\foreach \x in {0,1,…,3} {
\edef\next{\noexpand
\addplot table from
\expandafter\noexpand\csname measurements\x\endcsname;
}\next
}
\end{axis}
\end{tikzpicture}

\end{document}
` (ho inserito una misura in più per vedere come veniva quel colore 😉 ). Ovviamente non è quello che volevi tu perché la lista viene definita a priori, ma ora che conosci la chiave in teoria puoi studiarne il codice e probabilmente ricavarne le basi necessarie per creare la tua lista personalizzata (perché sai come funzionano gli [tt]\expandafter[/tt] e compagnia 😉 ).

In realtà mi pare un’ottima soluzione! Grazie!

Go to top