使用显式元数据访问 pgfplots 散点图中的原始元数据

使用显式元数据访问 pgfplots 散点图中的原始元数据

我正在尝试利用添加到散点图中坐标的显式元数据。但是,我不需要转换后的数据,而应该是原始数据。这个问题的动机是这个问题,其中原始元数据将用于设置节点锚点。

问题]:为什么最后会有一个额外的。也就是说,为什么0映射到0Y0.0e0]而不是0Y0.0e0?据我所知,thisextra]不应该在那里,还是我漏掉了什么?这个东西使得解析数据以恢复原始条目变得非常困难。

\documentclass[tikz,border=3.14mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16,
poles/.style= { scatter,
        scatter src=explicit, only marks, mark=x, mark size = 1ex, thick},
}
\begin{document}
\begin{tikzpicture}
\begin{axis}[% point meta=explicit symbolic, %<- does not help (as expected)
visualization depends on=\pgfplotspointmeta \as \mymeta,
    nodes near coords={\pgfplotspointmeta}, % \pgfplotspointmetatransformed transforms the values
    enlargelimits=0.3]
\addplot[poles] coordinates {(-2,2)[90] (-2,-2)[270] (-8,0)[0]};
\end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

我理解如果以表格形式提供数据,类似的问题就不会出现。也就是说,我对从表格中读取数据的解决方法不感兴趣。

答案1

你已经走在正确的轨道上了:point meta=explicit symbolic这就是你所需要的。

然而,polar风格覆盖此设置通过 实现scatter src=explicit。 键scatter src是 的遗留别名point meta(它在点元数据概念以其一般形式定义之前就已存在)。

结果是

\documentclass[tikz,border=3.14mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16,
poles/.style= { scatter,
        only marks, mark=x, mark size = 1ex, thick},
}
\begin{document}
\begin{tikzpicture}
\begin{axis}[point meta=explicit symbolic,
    nodes near coords={\pgfplotspointmeta},
    enlargelimits=0.3]
\addplot[poles] coordinates {(-2,2)[90] (-2,-2)[270] (-8,0)[0]};
\end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容