Maison > développement back-end > Tutoriel Python > Comment afficher les dates sur l'axe X d'un tracé linéaire Pandas ?

Comment afficher les dates sur l'axe X d'un tracé linéaire Pandas ?

Linda Hamilton
Libérer: 2024-10-31 10:04:02
original
299 Les gens l'ont consulté

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

Le tracé linéaire Pandas Dataframe affiche la date sur l'axe x

Lors de la création d'un tracé linéaire d'un Pandas Dataframe avec des valeurs datetime sur l'axe x, il est important de considérer la compatibilité entre Pandas et la gestion datetime de matplotlib. Par défaut, Pandas et matplotlib utilisent des formats datetime différents, ce qui peut entraîner des problèmes de formatage des axes.

Contexte du problème :

Votre extrait de code illustre ce problème : utiliser pd .to_datetime pour convertir la colonne 'date' en objets datetime et la définir comme index crée un axe datetime Pandas. Cependant, l'ajout du DateFormatter directement à cet axe ne produit pas le formatage de date attendu.

Ursache :

Le décalage survient parce que Pandas utilise son propre format datetime, qui diffère de celui utilisé par matplotlib. Tenter de mélanger ces formats peut conduire à des résultats inattendus.

Solution :

Pour remédier à cette incompatibilité, vous avez deux options :

1. Activez la compatibilité de l'axe x dans Pandas :

Ajoutez x_compat=True lors du traçage du dataframe. Cela demande à Pandas d'utiliser le formatage datetime de matplotlib pour l'axe des x.

df.plot(x_compat=True)
Copier après la connexion

2. Utilisez matplotlib directement pour le formatage datetime :

Au lieu d'utiliser les capacités de traçage intégrées de Pandas, vous pouvez créer un tracé en utilisant directement matplotlib. Cela vous permet d'utiliser la gamme complète d'options de formatage datetime de matplotlib.

plt.plot(df['date'], df['ratio1'])
Copier après la connexion

En utilisant le DateFormatter du module de dates de matplotlib, vous pouvez obtenir le formatage de date souhaité :

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")
Copier après la connexion

En utilisant ces méthodes, vous pouvez vous assurer que l'axe des x de votre tracé linéaire affiche correctement les dates, évitant ainsi toute incohérence entre Pandas et la gestion datetime de matplotlib.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal