Heim  >  Artikel  >  Backend-Entwicklung  >  Wie behebe ich Datetime-Inkompatibilitätsprobleme zwischen Pandas und Matplotlib?

Wie behebe ich Datetime-Inkompatibilitätsprobleme zwischen Pandas und Matplotlib?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-27 10:48:01997Durchsuche

How to Resolve Datetime Incompatibility Issues Between Pandas and Matplotlib?

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!

Stellungnahme:
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