在 foreach 循环中改变颜色

在 foreach 循环中改变颜色

我正在尝试使用 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

相关内容