Inkompatibilität zwischen Pandas und Matplotlib Datetime-Objekten
Beim Versuch, Daten auf der x-Achse eines Pandas Dataframe-Liniendiagramms anzuzeigen, kann es zu Abweichungen kommen entstehen aufgrund der inhärenten Inkompatibilität zwischen Pandas und Matplotlib Datetime-Dienstprogrammen. Folglich können problematische Visualisierungen auftreten.
Das Hinzufügen eines DateFormatter in Matplotlib kann zu Problemen wie falschen Startdaten und falschen Wochentagsbezeichnungen führen. Dies liegt daran, dass Pandas ein eigenes Datum/Uhrzeit-Format verwendet, das sich von dem von Matplotlib verwendeten unterscheidet.
Um diesen Konflikt zu lösen, wird empfohlen, die Datum/Uhrzeit-Objekte von Pandas und Matplotlib nicht zu vermischen. Alternativ können Sie Pandas anweisen, sein Standard-Datums-/Uhrzeitformat nicht zu verwenden, indem Sie beim Plotten den Parameter x_compat auf True setzen.
Verwendung von Matplotlib für die Datumsformatierung
Für erweiterte Datumsformatierung Erwägen Sie die Verwendung der nativen Funktionen von Matplotlib. Dieser Ansatz bietet mehr Flexibilität und Kontrolle über die Formatierung von Datumsangaben auf der x-Achse.
<code class="python">import pandas as pd import matplotlib.pyplot as plt import matplotlib.dates as dates # Dataframe creation and formatting df = pd.DataFrame({'date':['20170527','20170526','20170525'],'ratio1':[1,0.98,0.97]}) df['date'] = pd.to_datetime(df['date']) # Matplotlib plotting using object-oriented API fig, ax = plt.subplots(figsize=(6,4)) ax.plot('date', 'ratio1', data=df) # Date formatting using Matplotlib functions ax.xaxis.set_major_locator(dates.DayLocator()) ax.xaxis.set_major_formatter(dates.DateFormatter('%d\n\n%a')) # Additional formatting and display ax.invert_xaxis() fig.autofmt_xdate(rotation=0, ha="center") plt.show()</code>
Dieses Code-Snippet demonstriert die Verwendung der objektorientierten API von Matplotlib, die eine detailliertere Kontrolle über den Plot und seine Funktionen bietet Elemente. Durch explizites Definieren der Figur und der Achsen kann eine benutzerdefinierte Formatierung auf die x-Achse angewendet werden.
Sie können die Datumsformatierung weiter anpassen, indem Sie die Parameter des DateFormatter-Objekts anpassen, z. B. die Angabe der Datumsformatzeichenfolge und die Aktivierung Drehung oder Ausrichtung und Steuerung der Anzahl der angezeigten Daten.
Das obige ist der detaillierte Inhalt vonWie behebe ich Datetime-Inkompatibilitätsprobleme zwischen Pandas und Matplotlib?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!