用坐标标记 PGFPlot 表格点

用坐标标记 PGFPlot 表格点

我想用 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}

该图显示了上述代码的结果

相关内容