访问绘图的第 n 个坐标

访问绘图的第 n 个坐标
\begin{tikzpicture}
  \begin{axis}
    \addplot coordinates {
      (1,1) (2,4) (3,9) (4,16)
    };
    \draw (axis cs:0,0) -- (axis cs:3,9);
  \end{axis}
\end{tikzpicture}

我可以轻松地在坐标系中的两点之间画一条线。在这里,我得到了 y=x² 的几个坐标。我可以从坐标系的原点 (0,0) 到 (3,9) 画一条线,该线位于图上。(3,9) 是图的第 3 个坐标。是否可以写类似

\draw (axis cs:0,0) -- (plotcs:3);

访问图中第三个元组的坐标?

答案1

我将表格放入文件 data.dat 中:

% y = x^2
xcol   ycol
1      1
2      4
3      9
4     16

并可以通过 pgfplotstable 包访问坐标:

\begin{tikzpicture}
  \begin{axis}
    \pgfplotstableread{data.dat}{\mytable}          %% load table
    \addplot table[x=xcol,y=ycol] {\mytable};
    \pgfplotstablegetelem{2}{xcol}\of{\mytable}     %% get n-th x
    \pgfmathsetmacro{\xn}{\pgfplotsretval}
    \pgfplotstablegetelem{2}{ycol}\of{\mytable}     %% get n-th y
    \pgfmathsetmacro{\yn}{\pgfplotsretval}
    \path[draw] (axis cs:0,0) -- (axis cs:\xn,\yn); %% draw line
  \end{axis}
\end{tikzpicture}

相关内容