2017-05-16 1 views
1

Ich habe eine Kombination RPi/Arduino Messungen von mehreren DHT-22 Luftfeuchtigkeit/Temperatur-Sensoren.gnuplot: Fehlerhafter Sensor liest manchmal 0.00 - wie konvertiert man sie in fehlende?

Einer der Sensoren hat einen lockeren Draht entwickelt und gibt gelegentlich 10 bis 20 Minuten hintereinander 0.00 Temperaturmesswerte aus. Wegen der anderen Daten, die gleichzeitig gesammelt werden, habe ich nicht wirklich die Möglichkeit, die ganze Datenzeile zu löschen, als ob es der einzige Sensor wäre, der aufgezeichnet wird. Der Draht wurde jetzt repariert.

Also meine Frage ist, kann ich etwas im gnuplot Code tun, um diese 0.00 Werte zu betrachten, die einfach für die Handlung fehlen, also könnte sie sie ignorieren?

+1

'Set Datendatei fehlt" 0.00 "' –

Antwort

1

Gnuplot ermöglicht es Ihnen, Daten zu filtern, während Plotten:

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

Diese alle Werte von 0 als ungültig Punkte behandelt und diese Punkte übersprungen werden. Abhängig vom ausgewählten Plottstil, der funktioniert oder nicht: plot ... with lines unterbricht eine Linie an einem ungültigen Punkt.

Seit gnuplot Version 5.0.6 Sie set datafile missing NaN verwenden können ungültige Punkte als Vermissten behandelt zu haben, und eine Linie würde einfach die Punkte ignorieren:

$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 

Ausgang mit 5.0.6:

enter image description here

Verwandte Themen