在 pgfplots 中使用字符作为标记

在 pgfplots 中使用字符作为标记

我有一个散点图,其中pgfplots显示了属于 4 个不同来源的 4 种不同颜色的点。我想使用字符(例如“A”)而不是圆圈作为标记。例如,第一个来源的所有点将用小“A”显示,依此类推。

这是我当前使用的代码。

\begin{tikzpicture}[scale=0.45]
\begin{axis}[xlabel=X,ylabel=Y]
\addplot[visualization depends on={\thisrow{nodes}\as\myvalue}, scatter/classes={         a={mark=*,blue}, b={mark=*,red}, c={mark=*,black}, d={mark=*,orange} }, scatter, only marks, scatter src=explicit symbolic]
table[x=x,y=y,meta=label] {plots/data.csv};
\end{axis}
\end{tikzpicture}

答案1

只需使用文本标记,例如:

\documentclass{article}
\usepackage{pgfplots}
\usetikzlibrary{plotmarks}

\begin{document}
\begin{tikzpicture}
  \begin{axis}[enlargelimits=false]
    \addplot+[only marks, samples=20, mark=text, text mark=A] {rand};
  \end{axis}
\end{tikzpicture}
\end{document}

结果

文本标记也可以设置为具有更多选项的节点,例如:

\documentclass{article}
\usepackage{pgfplots}
\usetikzlibrary{plotmarks}

\begin{document}
\begin{tikzpicture}
  \begin{axis}[enlargelimits=false]
    \addplot+[
      only marks,
      mark=text,
      text mark=A,
      text mark as node,
      text mark style={%
        font=\small,
        circle,
        inner sep=.1em,
        fill=blue!10!white,
        draw=blue,
      },
      samples=20,
    ] {rand};
  \end{axis}
\end{tikzpicture}
\end{document}

带圆形节点的结果

相关内容