![如何从 tikzplotlib 解析 NaN](https://linux22.com/image/462728/%E5%A6%82%E4%BD%95%E4%BB%8E%20tikzplotlib%20%E8%A7%A3%E6%9E%90%20NaN.png)
我正在用 Python 绘制图表,然后使用tikzplotlib
库将它们导出到 LaTeX。问题是tikzplotlib
将具有(至少一个)NaN
值的对转换为-- --
如下所示
\addplot [draw=black, forget plot, mark=o, only marks]
table{%
x y
1.75 -3.2
2 -3.2
2.25 -3
2.5 -2.9
-- --
-- --
};
LaTeX 会给出错误响应
! Package PGF Math Error: Could not parse input '--' as a floating point number, sorry. The unreadable part was near '-'..
是否可以教导pgfplots
忽略--
as NaN
?或者教导将stikzplotlib
导出为?NaN
NaN
答案1
这不是一个答案,而是一个对于任何想要实验的人来说的 MWE。
\begin{filecontents}{table.dat}
x y
1.75 -3.2
2 -3.2
2.25 -3
2.5 -2.9
-- --
-- --
\end{filecontents}
\documentclass{article}
\usepackage{pgfplotstable}
\usepackage{pgfplots}
\begin{document}
\pgfplotstabletypeset[string replace={--}{}]{table.dat}% works as expected
\pgfplotstableread[string type, string replace={--}{}]{table.dat}\mytable
\pgfplotstabletypeset{\mytable}
\begin{tikzpicture}
\begin{axis}
\addplot [draw=black, forget plot, mark=o, only marks]
table{\mytable};
\end{axis}
\end{tikzpicture}
\end{document}
答案2
我意识到 Python 作为一种编程语言更加灵活,所以我简单地NaN
使用以下方法排除了数据
pyplot.scatter(x[~numpy.isnan(y)],y[~numpy.isnan(y)])
其中x
和y
是numpy
数据数组。