![用坐标标记 PGFPlot 表格点](https://linux22.com/image/424511/%E7%94%A8%E5%9D%90%E6%A0%87%E6%A0%87%E8%AE%B0%20PGFPlot%20%E8%A1%A8%E6%A0%BC%E7%82%B9.png)
我想用 x 和 y 坐标标记每个绘制点。我可以使用下面的 MWE 标记一个点。我必须避免手动标记每个点,因为我的实际表格尺寸更大,并且会定期更换。
\documentclass{standalone}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\begin{document}
\pgfplotstableread[col sep=&,row sep=\\]{
x & y \\
0.940 & 0.992 \\
0.992 & -0.940 \\
-0.992 & 0.940 \\
-0.940 & -0.992 \\
}\mytable
\begin{tikzpicture}
\begin{axis}
\addplot+[only marks, nodes near coords]table[x=x,y=y,meta=x]{\mytable};
\end{axis}
\end{tikzpicture}
\end{document}
期望的输出是每个点都标有两个坐标。具体示例为左上角的点将标有“(0.94, 0.992)”。
答案1
\documentclass{standalone}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\begin{document}
\pgfplotstableread[col sep=&,row sep=\\]{
x & y \\
0.940 & 0.992 \\
0.992 & -0.940 \\
-0.992 & 0.940 \\
-0.940 & -0.992 \\
}\mytable
\begin{tikzpicture}
\begin{axis}[enlargelimits=0.3]
\addplot+[only marks,
visualization depends on={x \as \myx},
visualization depends on={y \as \myy},
nodes near coords={$(\myx,\myy)$}]table[x=x,y=y]{\mytable};
\end{axis}
\end{tikzpicture}
\end{document}
答案2
来自PGFPlots 手册 (v1.17) 第 8.6 节,第 553 页。
要更改输出的数字格式,请查看TikZ 手册 (v3.1.7) 第 97 节 (第 1051 页),例如如果您想输出 3 个十进制数而不是 2 个。
% used PGFPlots v1.17
\documentclass[border=5pt]{standalone}
\usepackage{pgfplots}
\pgfplotstableread{
x y
0.940 0.992
0.992 -0.940
-0.992 0.940
-0.940 -0.992
}\mytable
\begin{document}
\begin{tikzpicture}
\begin{axis}[
only marks,
nodes near coords={%
$(\pgfmathprintnumber{\pgfkeysvalueof{/data point/x}},
\pgfmathprintnumber{\pgfkeysvalueof{/data point/y}})$%
},
]
\addplot table [x=x,y=y] {\mytable};
\end{axis}
\end{tikzpicture}
\end{document}