Tracé de dates avec Matplotlib

PythonPythonBeginner
Pratiquer maintenant

This tutorial is from open-source community. Access the source code

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, nous allons apprendre à créer des graphiques de dates à l'aide de Matplotlib en Python. Nous utiliserons le module matplotlib.dates pour convertir les objets datetime en représentation interne de Matplotlib. Nous apprendrons également à formater les étiquettes d'échelle sur l'axe des abscisses pour afficher les dates sous un format lisible.

Conseils sur la machine virtuelle

Une fois le démarrage de la machine virtuelle terminé, cliquez dans le coin supérieur gauche pour basculer vers l'onglet Carnet de notes pour accéder au carnet Jupyter pour la pratique.

Parfois, vous devrez peut-être attendre quelques secondes pour que le carnet Jupyter ait fini de charger. La validation des opérations ne peut pas être automatisée en raison des limitations du carnet Jupyter.

Si vous rencontrez des problèmes pendant l'apprentissage, n'hésitez pas à demander à Labby. Donnez votre feedback après la session, et nous réglerons rapidement le problème pour vous.

Importation des bibliothèques nécessaires

Nous commencerons par importer les bibliothèques nécessaires, y compris matplotlib.pyplot, matplotlib.cbook et matplotlib.dates.

import matplotlib.pyplot as plt
import matplotlib.cbook as cbook
import matplotlib.dates as mdates

Charger les données

Ensuite, nous allons charger les données que nous souhaitons tracer. Nous utiliserons un tableau enregistré numpy issu des données csv de Yahoo avec les champs date, ouverture, haut, bas, fermeture, volume, fermeture ajustée du répertoire mpl-data/sample_data. Le tableau enregistré stocke la date sous forme d'un np.datetime64 avec une unité de jour ('D') dans la colonne date.

data = cbook.get_sample_data('goog.npz')['price_data']

Créer des sous-graphiques

Nous allons créer trois sous-graphiques pour montrer différentes options de formatage pour les étiquettes d'échelle.

fig, axs = plt.subplots(3, 1, figsize=(6.4, 7), layout='constrained')

Tracer les données

Nous allons tracer les données sur les trois sous-graphiques à l'aide de la fonction plot.

for ax in axs:
    ax.plot('date', 'adj_close', data=data)
    ax.grid(True)
    ax.set_ylabel(r'Prix [\$]')

Formater les étiquettes d'échelle à l'aide du formateur par défaut

Nous allons formater les étiquettes d'échelle sur le premier sous-graphique à l'aide du formateur par défaut.

ax = axs[0]
ax.set_title('DefaultFormatter', loc='left', y=0.85, x=0.02, fontsize='medium')
ax.xaxis.set_major_locator(mdates.MonthLocator(bymonth=(1, 7)))
ax.xaxis.set_minor_locator(mdates.MonthLocator())

Formater les étiquettes d'échelle à l'aide du formateur concise

Nous allons formater les étiquettes d'échelle sur le deuxième sous-graphique à l'aide du formateur concise.

ax = axs[1]
ax.set_title('ConciseFormatter', loc='left', y=0.85, x=0.02, fontsize='medium')
ax.xaxis.set_major_formatter(mdates.ConciseDateFormatter(ax.xaxis.get_major_locator()))

Formater manuellement les étiquettes d'échelle

Nous allons formater manuellement les étiquettes d'échelle sur le troisième sous-graphique à l'aide de DateFormatter pour formater les dates à l'aide des chaînes de format documentées dans datetime.date.strftime.

ax = axs[2]
ax.set_title('Manual DateFormatter', loc='left', y=0.85, x=0.02, fontsize='medium')
ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%b'))
for label in ax.get_xticklabels(which='major'):
    label.set(rotation=30, horizontalalignment='right')

Afficher le tracé

Enfin, nous allons afficher le tracé à l'aide de la fonction show.

plt.show()

Sommaire

Dans ce laboratoire, nous avons appris à créer des graphiques de dates à l'aide de Matplotlib en Python. Nous avons utilisé le module matplotlib.dates pour convertir des objets datetime en représentation interne de Matplotlib. Nous avons également appris à formater les étiquettes d'échelle sur l'axe des x pour afficher les dates sous un format lisible.