[PYTHON] Formatieren Sie die Zeitachse des Pandas-Zeitreihendiagramms mit matplotlib neu

Als ich nach df.plot () set_major_formatter () gesetzt habe, hatte ich das Problem, dass die Jahr- und Monatsnotation von xtick fehlerhaft war, aber ich habe es gelöst, also habe ich mir eine Notiz gemacht.

Annahme

pandas:0.24.2 matplotlib:3.1.0

Datenaufbereitung

import pandas as pd
import numpy as np

N = 100
x = np.random.rand(N)
y = x**2

df = pd.DataFrame(
    index=pd.date_range('2020-01-01', periods=N, freq='D'),
    data=dict(x=x, y=y)
)
df.head()

image.png

Kein Problemfall

#Verwenden Sie die Pandas-Plot-Funktion
df.plot()

image.png Wenn der DataFrame-Index DatetimeIndex ist, wird das Häkchen automatisch formatiert. Wenn dieses Format in Ordnung ist, ist das in Ordnung.

Problematischer Fall

import matplotlib.dates as mdates

#Verwenden Sie die Pandas-Plot-Funktion
ax = df.plot()

#Neuformatierung
ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y/%m/%d'))

image.png

Die Anzeige für% Y ist seltsam. Was ist 0051 Jahre ... Laut der folgenden Site scheint das datetime-Dienstprogramm von pandas und matplotlib nicht kompatibel zu sein. https://code-examples.net/ja/q/2a2a615

Lösung

import matplotlib.dates as mdates

# x_Übergeben Sie die Kompatibilitätsoption. Dies unterdrückt die automatische Anpassung von Zecken.
ax = df.plot(x_compat=True)
ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y/%m/%d'))

image.png

% Y ist jetzt korrekt im Jahr 2020!

Steht x_compat für x_compatibility? Laut der offiziellen Dokumentation ist x_compat ein Parameter, der die automatische Anpassung von Zecken unterdrückt. https://pandas.pydata.org/pandas-docs/stable/user_guide/visualization.html#suppressing-tick-resolution-adjustment

Wenn es einen klügeren Weg gibt, würde ich es begrüßen, wenn Sie mich unterrichten könnten.

Recommended Posts

Formatieren Sie die Zeitachse des Pandas-Zeitreihendiagramms mit matplotlib neu
Zeitreihendiagramm / Matplotlib
Zeichnen Sie die CSV von Zeitreihendaten mit einem Unixtime-Wert in Python (matplotlib).
Zeichnen Sie den Nikkei Average Stock Index mit Pandas
Richten Sie die Größe der Farbleiste an der Matplotlib aus
Zeichnen Sie mit Pythons Matplotlib mehrere Karten und Daten gleichzeitig
Bequeme Zeitreihenaggregation mit TimeGrouper von Pandas
Erhöhen Sie die Schriftgröße des Diagramms mit matplotlib
Zeigen Sie Details zu Zeitreihendaten mit Remotte an
Die Basis der Graphentheorie mit Matplotlib-Animation
Visualisieren Sie das Verhalten des Sortieralgorithmus mit matplotlib
Typkonvertierung mehrerer Spalten von Pandas DataFrame mit Astype gleichzeitig
2-Achsen-Plot mit Matplotlib
3D-Plot mit Matplotlib
Berechnen Sie die Summe der eindeutigen Werte durch Pandas-Kreuztabellen
Zeichnen auf Jupyter mit der Plot-Funktion von Pandas
Passen Sie das Verhältnis mehrerer Zahlen mit der Rasterspezifikation von Matplotlib an
Berechnen Sie den Zeitunterschied zwischen zwei Spalten mit Pandas DataFrame
Lassen Sie uns den Befehl pünktlich mit dem Bot der Zwietracht ausführen
[In 3 Zeilen] Zeichnen Sie die Bevölkerungspyramide (Balkendiagramm der Altersgruppe / des Geschlechts) nur mit Pandas
Stapelbares Barplot mit Matplotlib
Stellen wir uns die Anzahl der mit Matplotlib mit dem Coronavirus infizierten Personen vor
[Python] Zeichnen Sie Zeitreihendaten
Zeichnen Sie Zeitreihendaten in Python mit Pandas und Matplotlib
Ändern Sie den Stil von matplotlib
Ich habe die Grundoperation von matplotlib in Jupyter Lab geschrieben
Animieren Sie die Alpha- und Beta-Werte der weltweit besten Marktwertaktien mit Pandas + Matplotlib
Wie man zeichnet, indem man die Farbe des Diagramms kontinuierlich mit matplotlib ändert und einfach viele Legenden anordnet
Die Kraft der Pandas: Python
Grundlegende Berechnung von Pandas, um Hakone Ekiden zu genießen und gleichzeitig mit den besten Mitgliedern aller Zeiten zu konkurrieren
Verwalten Sie die Überlappung, wenn Sie ein Streudiagramm mit einer großen Datenmenge zeichnen (Matplotlib, Pandas, Datashader).
Lesen Sie die Koordinaten des Diagramms in der Grafik mit Python-matplotlib (Super-Anfänger)
So extrahieren Sie Funktionen von Zeitreihendaten mit PySpark Basics
Formatieren Sie die CSV-Datei "Nationalfeiertag" des Kabinetts mit Pandas
Ich habe die Grundoperation von Pandas im Jupyter Lab geschrieben (Teil 1)
[Statistik] [Zeitreihenanalyse] Zeichnen Sie das ARMA-Modell und erfassen Sie die Tendenz.
Ich habe die grundlegende Operation von Pandas im Jupyter Lab geschrieben (Teil 2).
Berechnung der Zeitreihen-Kundenbindung
Erstellen Sie eine Plotanimation mit Python + Matplotlib
Zeichnen Sie die Ausbreitung des neuen Koronavirus
Einfache Vorhersage von Zeitreihen mit Prophet
Extrahieren Sie den Maximalwert mit Pandas.
Vielseitige Datenerfassung mit Pandas + Matplotlib
Verarbeiten Sie das Ergebnis von% time,% timeit
Zeitreihenplot gestartet ~ Python Edition ~
Differenzierung von Zeitreihendaten (diskret)
Zeitreihenanalyse 3 Vorverarbeitung von Zeitreihendaten
Kontinuierliche Farbe mit Matplotlib-Streudiagramm
Über die Größe der Punkte in Matplotlib
Fall mit Pandas-Plot, Fall mit (reinem) Matplotlib-Plot
Führen Sie mit Python, matplotlib, einen logarithmischen Normalwahrscheinlichkeitsplot durch
Stellen Sie die Behälterbreite mit dem Histogramm von Matplotlib und Seaborn klar und ordentlich ein
Ich habe einen Fehler beim Abrufen der Hierarchie mit MultiIndex von Pandas gemacht
Vorhersage von Zeitreihendaten durch Simplex-Projektion
[Python] Legen Sie den Diagrammbereich mit matplotlib fest
Passen Sie den Abstand zwischen den Figuren mit Matplotlib an
Vorhersage von Zeitreihendaten mit einem neuronalen Netzwerk