使用 PGFPlots 绘制图表和非数字标签

使用 PGFPlots 绘制图表和非数字标签

给定一些数据(来自文件),我想使用前两列作为坐标,最后一列作为每个点的标签。

x    y   label
123  5.2 name

我使用 table 命令读取前两列作为数据:

\begin{tikzpicture}
    \begin{axis}
        \addplot+[only marks,x=x, y=y, ] table {Data.dat};
    \end{axis}
\end{tikzpicture}

第二列的数据应以简单文本的形式出现在每个散点上方。

一个有希望的选项似乎是靠近坐标的选项节点,但我不知道如何使用文件中的数据并将其与之结合起来。

这个问题与这篇文章类似,最后一列有数值。

答案1

nodes near coords打印meta每个数据点的值,默认为坐标y。要打印其他内容,您必须定义值meta是什么。在您的例子中,您希望为每个数据点明确提供值meta(而不是计算它或使用常量值),因此您必须设置point meta=explicit symbolicsymbolic告诉 PGFPlots 不要通过数字解析器传递值)。然后您可以meta=name\addplot table [...]选项中设置以指定meta应从列中获取值name

\documentclass{article}
\usepackage{pgfplots}

\begin{document}
\begin{tikzpicture}
    \begin{axis}[
            nodes near coords,
            point meta=explicit symbolic
        ]
        \addplot table [meta=label] {Data.dat};
    \end{axis}
\end{tikzpicture}
\end{document}

相关内容