如何绘制带有彩色文本标签的散点图?

如何绘制带有彩色文本标签的散点图?

我需要创建一个类似于这个问题但使用文本标签而不是数字。即从该示例来看,nodes数据列应包含文本标签(带空格),并且这些标签需要在图表上。

然后,我想删除彩色标记,并根据label数据文件中的列更改文本的颜色。

请问这可能吗?

在此处输入图片描述

[编辑] 这是代码

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

答案1

您可以使用相同的机制,将标记作为要绘制的文本,然后使用散点图类控制颜色等。对于非数字项,您需要value向键添加关键字visualization depends on以关闭数学解析。

\documentclass{article}
\usepackage{pgfplots,filecontents}
\pgfplotsset{compat=1.12}
\begin{filecontents*}{data.txt}
nodes     x         y       label
{spaced label}   14.1209   7.0332  a
{spaced label}    0.6367   16.6166 a
{spaced label}    5.5385   11.7053 a
{spaced label}    0.9234   10.9945 a
{spaced label}    1.9426   18.3439 b
{spaced label}   16.4692    5.7168 b
{spaced label}   13.8966   15.1440 a
{spaced label}    6.3420   15.0746 a
{spaced label}   19.0044    7.6089 b
{spaced label}    0.6889   11.3564 b
\end{filecontents*}

\begin{document}

 \begin{figure}
\centering
\begin{tikzpicture}
    \begin{axis}[xlabel=metri,ylabel=metri]
        \addplot+[
                visualization depends on={value \thisrow{nodes}\as\myvalue},
                scatter/classes={
                a={mark=text,text mark=\myvalue,blue},
                b={mark=text,text mark=\myvalue,red}
                },
                scatter,draw=none,
                scatter src=explicit symbolic]
         table[x=x,y=y,meta=label]
            {data.txt};
    \end{axis}
\end{tikzpicture}
\end{figure}
\end{document}

在此处输入图片描述

相关内容