Tikzpicture 和 foreach 循环中的颜色问题

Tikzpicture 和 foreach 循环中的颜色问题

我正在关注我以前的问题关于 tikzpicture 中 foreach 循环的使用:

以下是带有可用代码的简单描述,但所有标记都用红色标出:

\documentclass{article}
\usepackage{pgfplotstable}
\pgfplotsset{compat=1.18}

\begin{document}

\newcommand{\Table}{
    \begin{tikzpicture} 
        \begin{axis}
            \foreach \A / \B/ \C  in {1/100/green, 2/200/red}
                \addplot [
                    mark=diamond*,
                    color=red
                ] 
                coordinates {(\B, \A)};
        \end{axis}
    \end{tikzpicture}
}

\Table

\end{document}

在我的例子中,我想将颜色设为 foreach 循环中的变量。我尝试采用上一个问题中成功建议的标记标签方法。因此,我将其更改color=red

visualization depends on={value \C\as\myC},
color={\myC}

但在这种情况下,它无法编译并返回“未定义的控制序列”错误。我很想了解此类问题背后的原因,以及可能的解决方法。

提前致谢。

答案1

以下是基于的答案此处的解决方案。添加命令后,它起作用了edeftemp并且noexpand

\documentclass{article}
\usepackage{pgfplotstable}
\pgfplotsset{compat=1.18}
\begin{document}
\newcommand{\Table}{
    \begin{tikzpicture} 
        \begin{axis}
            \foreach \A / \B/ \C  in {1/100/green, 2/200/red,  3/300/blue} {%
            \edef\temp{%
                \noexpand
                \addplot [
                    mark=diamond*,
                    color=\C,
                ] 
                coordinates {(\B, \A)};
                }\temp
                }   
        \end{axis}
    \end{tikzpicture}
}
\Table
\end{document}

我得到的是:

在此处输入图片描述

相关内容