我正在尝试使用 for 循环和逐渐变化的颜色绘制 12 条不同的线条。我想出了这个简单的代码:
\begin{figure}
\begin{tikzpicture}
\begin{axis}[
ylabel={Normalized Intensity (a.u.)},
xlabel={Energy (eV)},
]
\foreach \column in {1,...,12}{
\addplot[style = solid, color = red!\column!black] table[x index = {0}, y index = {\column}] {../Data/12spectra.asc};
}
\end{axis}
\end{tikzpicture}
\caption{blablablabla}
\end{figure}
但命令 red!\column!black 不起作用。我以为关键字 \column 每次出现时都会被替换为其值……我得到的错误是
!Undefined control sequence.
\GenericError ...
#4 \errhelp \@err@ ...
l.75 \end{axis}
我见过这个问题在 foreach 中改变颜色,但它对我没有帮助。
我只包含了 pgfplots 包,我还需要另一个吗?
您对如何解决该问题有什么建议吗?
答案1
改为使用pgfplotsinvokeforeach
,以使值扩展
\begin{tikzpicture}
\begin{axis}[
ylabel={Normalized Intensity (a.u.)},
xlabel={Energy (eV)},
]
\pgfplotsinvokeforeach{1,...,12}{
\addplot[style = solid, color = red!#1!black] table[x index = {0}, y index = {#1}] {../Data/12spectra.asc};
}
\end{axis}
\end{tikzpicture}
也不要使用很可能是某些包中的关键字的名称,例如\column
。