![使用显式元数据访问 pgfplots 散点图中的原始元数据](https://linux22.com/image/386388/%E4%BD%BF%E7%94%A8%E6%98%BE%E5%BC%8F%E5%85%83%E6%95%B0%E6%8D%AE%E8%AE%BF%E9%97%AE%20pgfplots%20%E6%95%A3%E7%82%B9%E5%9B%BE%E4%B8%AD%E7%9A%84%E5%8E%9F%E5%A7%8B%E5%85%83%E6%95%B0%E6%8D%AE.png)
我正在尝试利用添加到散点图中坐标的显式元数据。但是,我不需要转换后的数据,而应该是原始数据。这个问题的动机是这个问题,其中原始元数据将用于设置节点锚点。
问题]
:为什么最后会有一个额外的。也就是说,为什么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}