访问用于 \foreach 循环中绘制的线上标签的表数据

访问用于 \foreach 循环中绘制的线上标签的表数据

我有一张包含多组 (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}  

在此处输入图片描述 在此处输入图片描述

相关内容