我有一张包含多组 (x,y) 数据的大表,每个数据集后面都有一个常数,我们可以将其称为“C”。为了节省时间,我想使用循环\foreach
进行绘图。我的问题是我想用相应的“C”值标记每条绘制的线。我的方法是使用\pgfplotstablegetelem
命令获取“C”并分配\pgfplotsretval
给命令,然后我将其打印给将生成标签的节点。
请参阅下面的 MWE。在代码中,我绘制了数据集 (A,B)、(A,B') 和 (A,B'')(在我的实际情况下,这还要进一步)。然后,我希望打印它们所属的数据集的 C、C' 和 C''。数据按预期绘制,但 LaTeX 遇到了错误:
未定义的控制序列。^^I^^I\end{axis} 并生成附加的图。
我怎样才能在曲线上打印“C”值,即在此示例中蓝色曲线上打印 0.1,红色曲线上打印 0.25,棕色曲线上打印 0.33。
(我还包含在节点文本中输入“预览”时获得的结果。)
\begin{filecontents*}{data.csv}
A,B,C,B',C',B'',C''
1,1,0.1,2,0.25,3,0.33
2,2,0.1,4,0.25,6,0.33
3,3,0.1,8,0.25,12,0.33
4,4,0.1,16,0.25,24,0.33
\end{filecontents*}
\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\foreach \hopp in {1,3,...,5}{
\pgfplotstableread[col sep = comma, header = false]{data.csv}{\mytableu}
\pgfplotstablegetelem{0}{[index]{\number\numexpr\hopp+1\relax}}\of{\mytableu}
\let\mydummy\pgfplotsretval
\addplot table [
col sep = comma, x=A, y index=\hopp
]{data.csv}
node [
pos={0.8}, sloped,anchor=center, fill = white,
]
{\mydummy};
}
\end{axis}
\end{tikzpicture}
\end{document}