Maison  >  Article  >  développement back-end  >  Comment résoudre les problèmes d'incompatibilité date/heure entre Pandas et Matplotlib ?

Comment résoudre les problèmes d'incompatibilité date/heure entre Pandas et Matplotlib ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-27 10:48:01997parcourir

How to Resolve Datetime Incompatibility Issues Between Pandas and Matplotlib?

Incompatibilité entre les objets Pandas et Matplotlib Datetime

Lors de la tentative d'affichage des dates sur l'axe x d'un tracé linéaire Pandas Dataframe, des écarts peuvent survenir en raison de l'incompatibilité inhérente entre les utilitaires datetime Pandas et Matplotlib. Par conséquent, des visualisations problématiques peuvent survenir.

L'ajout d'un DateFormatter dans Matplotlib peut introduire des problèmes tels que des dates de début incorrectes et des étiquettes de jours de semaine incorrectes. En effet, Pandas utilise son propre format datetime, qui diffère de celui utilisé par Matplotlib.

Pour résoudre ce conflit, il est recommandé de s'abstenir de mélanger les objets datetime Pandas et Matplotlib. Alternativement, vous pouvez demander à Pandas de ne pas utiliser son format datetime par défaut en définissant le paramètre x_compat sur True lors du traçage.

Utilisation de Matplotlib pour le formatage de date

Pour le formatage de date avancé capacités, pensez à utiliser les fonctions natives de Matplotlib. Cette approche offre plus de flexibilité et de contrôle sur le formatage des dates sur l'axe des x.

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

Cet extrait de code démontre l'utilisation de l'API orientée objet de Matplotlib, qui fournit un contrôle plus granulaire sur le tracé et son éléments. En définissant explicitement la figure et les axes, un formatage personnalisé peut être appliqué à l'axe des x.

Vous pouvez personnaliser davantage le formatage de la date en ajustant les paramètres de l'objet DateFormatter, par exemple en spécifiant la chaîne de format de date, en activant rotation ou alignement, et contrôler le nombre de dates affichées.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn