Matplotlib entfernen interpolation für die fehlenden Daten
Bin ich Plotten timeseries Daten mit Matplotlib und einige der Daten fehlt in der Reihenfolge. Matplotlib implizit verbindet der letzten zusammenhängenden Daten Punkt zum nächsten. Aber falls Daten fehlen, wird das Diagramm sieht hässlich aus. Im folgenden wird der plot erhalten.
Es kann gesehen werden, dass in der Nähe des April 30th marker, Daten fehlen und Matplotlib verbindet die Punkte.
Auch das folgende Bild ist das Streudiagramm der Daten. Scatter-plot deckt sich dieser Fehler, aber dann zusammenhängende Datenpunkte nicht gemeinsam in diesem Fall. Darüber hinaus scatter-plot ist sehr langsam angesichts der großen Anzahl der Daten-Punkte beteiligt.
Was ist die empfohlene Lösung für solche Probleme.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie identifizieren können, wo die Haltestellen sein sollten, können Sie entweder:
np.nan
in den Daten, die in die LückenSiehe zum Beispiel Grundstück periodische Trajektorien.
Können Sie den gleichen Effekt
scatter
(wenn Sie nicht wollen, zu skalieren, die Größe oder Farbe von jedem Punkt unabhängig voneinander) mitAls die vorige Antwort sagt, sollten Sie NaNs, wo es keine Daten. Diese Antwort ist spezifisch für Pandas, und erklärt, wie dies erreicht werden kann, leicht. Entweder :
Series.resample()
oderSeries.reindex()
Ist die einfachste Methode zu verwenden ist
resample()
. Dies ist die knappste Art und Weise für die in regelmäßigen Abständen Daten. Also in deinem Beispiel oben, wenn Sie z.B. 5 Minuten Daten, nurdata.resample("5 min")
. Diese Rückkehr wird Sie Ihre Daten mit 'NaT' (Zeit-äquivalent NaN) die fehlenden Werte.Der einzige Fall, wo dies funktioniert nicht allzu gut ist, wenn Ihre Proben sind nicht regelmäßig verteilt.
Die alternative ist
reindex()
, welche auch für die bestellten (aber nicht-Zeit-Serien-Daten). So zum Beispiel, wenn Sie hatte einen Datensatz indiziert mit den zahlen von 0 .. 100, aber mit ein paar fehlenden Proben, die Sie tun könntendata.reindex([0:100])
. Sie können auch repliziert das Verhalten derresample
mitreindex
durch übergabe in einerpandas.date_range()
Funktion als argument.