根据 dat 文件创建散点图

根据 dat 文件创建散点图

我将使用 pgfplots 使用包含以下数据的 dat 文件中的数据创建散点图:

nodes     x         y       label

1.0000    14.1209   7.0332  a

2.0000     0.6367   16.6166 a

3.0000     5.5385   11.7053 a

4.0000     0.9234   10.9945 a

5.0000     1.9426   18.3439 b

6.0000    16.4692    5.7168 b

7.0000    13.8966   15.1440 a

8.0000     6.3420   15.0746 a

9.0000    19.0044    7.6089 b

10.0000    0.6889   11.3564 b

我将创建一个散点图,其中第一列是每个散点的标签,而接下来的两列是 x 和 y。最后一列是一个类,它决定散点是红色还是蓝色。这是我创建的代码

 \begin{figure}
\centering
\begin{tikzpicture}
    \begin{axis}[xlabel=metri,ylabel=metri]
        \addplot[nodes near coords*={\thisrow{nodes}},
            scatter/classes={
                a={mark=*,blue},
                b={mark=*,red}
                },
                scatter, only marks,
                scatter src=explicit symbolic]
         table[x=x,y=y,meta=label]
            {./MATLAB/grafici/network_map.txt};
    \end{axis}
\end{tikzpicture}

\end{figure}

不幸的是,这样我没能得到标签。有些东西不起作用

答案1

由于您使用颜色的元信息,因此您需要使用visualization depends on其余数据。并且它应该位于scatter src选项之后,否则它将被覆盖。

\documentclass{article}
\usepackage{pgfplots,filecontents}
\pgfplotsset{compat=1.7}
\begin{filecontents*}{mydata.dat}
nodes     x         y       label
1.0000    14.1209   7.0332  a
2.0000     0.6367   16.6166 a
3.0000     5.5385   11.7053 a
4.0000     0.9234   10.9945 a
5.0000     1.9426   18.3439 b
6.0000    16.4692    5.7168 b
7.0000    13.8966   15.1440 a
8.0000     6.3420   15.0746 a
9.0000    19.0044    7.6089 b
10.0000    0.6889   11.3564 b
\end{filecontents*}

\begin{document}

 \begin{figure}
\centering
\begin{tikzpicture}
    \begin{axis}[xlabel=metri,ylabel=metri]
        \addplot[
                visualization depends on={\thisrow{nodes}\as\myvalue},
            scatter/classes={
                a={mark=*,blue},
                b={mark=*,red}
                },
                scatter, only marks,
                scatter src=explicit symbolic,
                nodes near coords*={\pgfmathprintnumber[int detect]\myvalue},]
         table[x=x,y=y,meta=label]
            {mydata.dat};
    \end{axis}
\end{tikzpicture}

\end{figure}
\end{document}

在此处输入图片描述

相关内容