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.