在 PGFPlots 中,使用元数据作为标记?

在 PGFPlots 中,使用元数据作为标记?

有没有(我相信一定有)一种方法可以使用元数据进行标记?

我有类似下面的内容:

Year              coeff        meta
2005               1.2183       o
2006               0.1073       star
2007               0.5629       square
2008               1.0168       diamond
2009               -4.4083      otimes

我想要一个使用元数据作为标记的散点图。

谢谢!

答案1

meta您可以通过添加选项来使列的内容可用point meta=explicit symbolic,其中\addplot表示explicit元数据与 y 坐标不同(默认情况下,y 坐标用作元数据),表示symbolic不应将值解析为数字。

然后,您可以使用根据变量的内容来scatter/@pre marker code设置:markmeta

\documentclass[border=5mm]{standalone}

\usepackage{pgfplots, pgfplotstable}

\begin{document}

\begin{tikzpicture}
\begin{axis}[/pgf/number format/1000 sep={}]
\addplot [
    point meta=explicit symbolic,
    scatter, only marks,
    scatter/@pre marker code/.code={\pgfplotsset{mark=\pgfplotspointmeta}},
    scatter/@post marker code/.code={}
] table [meta=meta] {
Year              coeff        meta
2005               1.2183       o
2006               0.1073       star
2007               0.5629       square
2008               1.0168       diamond
2009               -4.4083      otimes
};
\end{axis}
\end{tikzpicture}

\end{document}

相关内容