gnuplot:有故障的传感器有时读数为 0.00 - 如何将它们转换为丢失?
Posted
技术标签:
【中文标题】gnuplot:有故障的传感器有时读数为 0.00 - 如何将它们转换为丢失?【英文标题】:gnuplot: Faulty sensor sometimes reading 0.00 - how to convert them to missing? 【发布时间】:2017-05-16 00:04:38 【问题描述】:我有一个组合 RPi/Arduino 从几个 DHT-22 湿度/温度传感器读取读数。
其中一个传感器出现松动的电线,并且连续 10-20 分钟偶尔会给出 0.00 的温度读数。由于同时收集的其他数据,我真的无法选择删除整行数据,就像它是唯一被记录的传感器一样。现在电线已经修好了。
所以我的问题是,我可以在 gnuplot 代码中做一些事情来将这些 0.00 值视为情节中缺少的值,以便它可以忽略它们吗?
【问题讨论】:
set datafile missing "0.00"
【参考方案1】:
Gnuplot 允许您在绘图时过滤数据:
gnuplot 'file.dat' using 1:($2 == 0.0 ? 1/0 : $2)
这会将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:($1 == 0.0 ? 1/0 : $1) with linespoints pt 7 notitle
set title '0.0 invalid but treated as missing'
set datafile missing NaN
replot
unset multiplot
5.0.6 的输出:
【讨论】:
以上是关于gnuplot:有故障的传感器有时读数为 0.00 - 如何将它们转换为丢失?的主要内容,如果未能解决你的问题,请参考以下文章