tikzpicture 中的 foreach 循环问题-未定义的控制序列

tikzpicture 中的 foreach 循环问题-未定义的控制序列

我对 tikzpicture 中的某些内容感到困惑。以下是我缩减到最少的问题代码:

\documentclass{article}
\usepackage{tikz}
\usepackage{xcolor}
\usepackage{pgfplotstable}
\usepackage{pgfplots}

\begin{document}

\newcommand{\Table}{
\begin{tikzpicture} 
\begin{axis}
\foreach \A / \B/ \C   in {1/100/g, 2/200/h}
    \addplot [
    mark=diamond*,
    nodes near coords={g}] 
    coordinates {(\B, \A)};
\end{axis}

\end{tikzpicture}
}

\Table

\end{document}

此代码运行良好,并添加标签G标记旁边。但我希望这个标签是 foreach 循环中的一个变量。所以我 nodes near coords={g}nodes near coords={\C}

但后来我得到了一个“未定义控制序列”错误。有人能解释一下为什么会这样吗?还有可能修复它的方法吗?

提前致谢。

答案1

改编

  • 该节点稍后绘制,然后\C将是未知的。因此,您可以使用以下选项visualization depends on
    visualization depends on={value \C\as\myC},
    nodes near coords={\myC}
    
  • 实施的建议来自贾斯珀·哈比希特的评论

代码

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

\begin{document}

\newcommand{\Table}{
    \begin{tikzpicture} 
        \begin{axis}
            \foreach \A / \B / \C in {1/100/g, 2/200/h}
                \addplot[
                    mark=diamond*,
                    visualization depends on={value \C\as\myC},
                    nodes near coords={\myC}
                ] 
                coordinates {(\B, \A)};
        \end{axis}
    \end{tikzpicture}
}

\Table

\end{document}

结果

在此处输入图片描述

相关内容