\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}