Jedem Tag ist ein Wert zugeordnet:
120530 70.1
120531 69.0
120601 69.2
120602 69.5
# and so on for 200 lines
Wenn Sie diese Daten in einem Gnuplot mit Linien zeichnen, sind die Datenpunkte gut miteinander verbunden. Leider können an Stellen über eine Woche Datenpunkte fehlen. Gnuplot zeichnet lange Linien über diese Intervalle. Wie kann ich dafür sorgen, dass Gnuplot nur an aufeinanderfolgenden Tagen Punkte verbindet?
Lösungen, die eine Vorverarbeitung der Daten erfordern, sind in Ordnung, da ich sie bereits mit einem Skript geglättet habe.
Folgendes verwende ich:
set xdata time
set timefmt "%y%m%d"
plot "vikt_ma.txt" using 1:2 with lines title "first line", \\
"" using 1:3 with lines title "second line"
Beispiel:
Antworten:
Fügen Sie einen leeren Datensatz (leere Zeile) ein, in dem keine Daten vorhanden sind. Aus den Dokumenten :
quelle
Sie können eine beliebige Zeichenfolge, die keine Zahl ist, als Wert für die fehlenden Datenpunkte verwenden oder mithilfe des
set datafile missing
Befehls explizit eine fehlende Datenzeichenfolge angeben .Wenn Sie dann die Linien zeichnen mit
dann wird Gnuplot eine Lücke hinterlassen.
quelle
Sie können auch wie folgt vorgehen, um automatisch Lücken zu erstellen, wenn der Abstand zwischen x-Werten einen bestimmten Schwellenwert überschreitet:
Sie müssen die Anfangswerte für "Vorherige" und "Aktuelle" sowie den Schwellenwert ("7200" im obigen Beispiel) anpassen.
Die Funktion "yornothing" verwendet die Funktion "shift", um einen vorherigen Wert von x zu speichern. Bei jedem Aufruf von yornothing wird entweder der Wert von y oder "0/0" zurückgegeben, je nachdem, ob der absolute Wert der Differenz zwischen x und dem vorherigen Wert den Schwellenwert überschreitet.
Ein Wert von 0/0 weist gnuplot an, diesen Punkt zu ignorieren.
quelle