我对 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}