gnuplot:有故障的传感器有时读数为 0.00 - 如何将它们转换为丢失?

gnuplot: Faulty sensor sometimes reading 0.00 - how to convert them to missing?

我有一个组合 RPi/Arduino 从几个 DHT-22 Humidity/Temperature 传感器读取读数。

其中一个传感器的电线松动,并且连续 10-20 分钟偶尔给出 0.00 的温度读数。由于同时收集了其他数据,我真的无法选择删除整行数据,就像如果它是唯一被记录的传感器一样。现在电线已经修好了。

所以我的问题是,我可以在 gnuplot 代码中做一些事情来将这些 0.00 值视为绘图中缺少的值,以便它可以忽略它们吗?

Gnuplot 允许您在绘图时过滤数据:

gnuplot 'file.dat' using 1:( == 0.0 ? 1/0 : )

这会将 0 的所有值视为无效点并跳过这些点。取决于所选的绘图样式是否有效:plot ... with lines 在无效点中断一条线。

从 gnuplot 版本 5.0.6 开始,您可以使用 set datafile missing NaN 将无效点视为缺失点,一行会简单地忽略这些点:

$data <<EOD
12
27
0
23
42
EOD

set multiplot layout 1,2

set title '0.0 invalid'
plot $data using 0:( == 0.0 ? 1/0 : ) with linespoints pt 7 notitle

set title '0.0 invalid but treated as missing'
set datafile missing NaN
replot

unset multiplot

5.0.6 输出: