Beim Erstellen eines Liniendiagramms eines Pandas Dataframe mit Datums-/Uhrzeitwerten auf der Es ist wichtig, die Kompatibilität zwischen Pandas und Matplotlib Datetime-Handhabung zu berücksichtigen. Standardmäßig verwenden Pandas und Matplotlib unterschiedliche Datums-/Uhrzeitformate, was zu Problemen mit der Achsenformatierung führen kann.
Problemhintergrund:
Ihr Codeausschnitt veranschaulicht dieses Problem: Verwendung von pd .to_datetime, um die Spalte „Datum“ in Datetime-Objekte zu konvertieren und sie als Index festzulegen, erstellt eine Pandas-Datetime-Achse. Das direkte Hinzufügen des DateFormatter zu dieser Achse führt jedoch nicht zu der erwarteten Datumsformatierung.
Ursache:
Die Nichtübereinstimmung entsteht, weil Pandas ein eigenes Datum/Uhrzeit-Format verwendet unterscheidet sich von der von Matplotlib verwendeten. Der Versuch, diese Formate zu mischen, kann zu unerwarteten Ergebnissen führen.
Lösung:
Um diese Inkompatibilität zu beheben, haben Sie zwei Möglichkeiten:
1. Aktivieren Sie die x-Achsen-Kompatibilität in Pandas:
Fügen Sie x_compat=True hinzu, wenn Sie den Datenrahmen zeichnen. Dadurch wird Pandas angewiesen, die Datums-/Uhrzeitformatierung von matplotlib für die x-Achse zu verwenden.
df.plot(x_compat=True)
2. Verwenden Sie matplotlib direkt für die Datums-/Uhrzeitformatierung:
Anstatt die integrierten Plotfunktionen von Pandas zu verwenden, können Sie einen Plot direkt mit matplotlib erstellen. Dadurch können Sie die gesamte Palette der Datums-/Uhrzeitformatierungsoptionen von Matplotlib nutzen.
plt.plot(df['date'], df['ratio1'])
Mit dem DateFormatter aus dem Datumsmodul von Matplotlib können Sie die gewünschte Datumsformatierung erreichen:
ax = df.plot(x_compat=True, figsize=(6, 4)) ax.xaxis.set_major_locator(dates.DayLocator()) ax.xaxis.set_major_formatter(dates.DateFormatter('%d\n\n%a')) ax.invert_xaxis() ax.get_figure().autofmt_xdate(rotation=0, ha="center")
Indem Sie diese nutzen Mit diesen Methoden können Sie sicherstellen, dass die x-Achse Ihres Liniendiagramms Datumsangaben korrekt anzeigt und so Inkonsistenzen zwischen Pandas und matplotlib bei der Datums-/Uhrzeitverarbeitung vermeiden.
Das obige ist der detaillierte Inhalt vonWie zeige ich Daten auf der X-Achse eines Pandas-Liniendiagramms an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!