Ich möchte eine Handlung wie folgt erstellen:
Der Code:
%Vor%aber mit Daten in der x-Achse, so (ohne Bänder):
der Code:
%Vor%Das Problem ist, dass fill_between fehlschlägt, wenn x-Werte date_time-Objekte sind.
Kennt jemand eine Problemumgehung? DF ist ein Pandas DataFrame.
Es würde helfen, wenn Sie zeigen, wie df
definiert ist. Was meldet df.info()
? Dies zeigt uns die Dtypes der Spalten.
Es gibt viele Möglichkeiten, Daten darzustellen: als Strings, Ints, Floats, Datetime.datetime, NumPy datetime64s, Pandas Timestamps oder Pandas DatetimeIndex. Die richtige Art zu zeichnen hängt davon ab, was Sie haben.
Hier ist ein Beispiel, das Ihren Code zeigt, wenn df.index
ein DatetimeIndex ist:
Wenn der Index String-Darstellungen von Datumsangaben enthält, erhalten Sie (mit Matplotlib Version 1.4.2) einen TypeError:
%Vor%ergibt
%Vor%In diesem Fall besteht die Lösung darin, die Zeichenfolgen in Zeitstempel umzuwandeln:
%Vor%Bezüglich des von chilliq gemeldeten Fehlers:
%Vor%Dies kann erzeugt werden, wenn die DataFrame-Spalten den Datentyp "object" haben, wenn fill_between verwendet wird. Wenn Sie die Beispielspaltearten ändern und dann versuchen, wie folgt zu plotten, wird der obige Fehler angezeigt:
%Vor%Aus dfo.info () sehen wir, dass die Spaltentypen "Objekt" sind:
%Vor%Wenn sichergestellt wird, dass der Datenrahmen numerische Spalten enthält, wird das Problem gelöst. Um dies zu tun, können wir pandas.to_numeric folgendermaßen konvertieren:
%Vor%Tags und Links python matplotlib pandas