Wie zeige ich Daten auf der X-Achse eines Pandas-Liniendiagramms an?

Linda Hamilton
Freigeben: 2024-10-31 10:04:02
Original
263 Leute haben es durchsucht

How to Display Dates on the X-Axis of a Pandas Line Plot?

Pandas Dataframe-Liniendiagramm zeigt Datum auf der X-Achse an

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)
Nach dem Login kopieren

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'])
Nach dem Login kopieren

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")
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage