Aligner les étiquettes sur l'axe des ordonnées dans les graphiques 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, vous allez apprendre à aligner les étiquettes sur l'axe des ordonnées dans les graphiques Matplotlib. L'alignement des étiquettes sur l'axe des ordonnées est important pour améliorer la lisibilité des graphiques, en particulier lorsqu'il y a plusieurs sous-graphiques.

Conseils sur la machine virtuelle

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

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

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ésoudrons rapidement le problème pour vous.

Importation des bibliothèques requises

La première étape consiste à importer les bibliothèques requises. Dans ce laboratoire, nous allons utiliser Matplotlib et NumPy.

import matplotlib.pyplot as plt
import numpy as np

Créer le graphique

L'étape suivante est de créer le graphique. Nous allons créer un graphique avec deux sous-graphiques, où les étiquettes sur l'axe des ordonnées ne sont pas alignées.

def make_plot(axs):
    box = dict(facecolor='yellow', pad=5, alpha=0.2)

    ## Fixing random state for reproducibility
    np.random.seed(19680801)
    ax1 = axs[0, 0]
    ax1.plot(2000*np.random.rand(10))
    ax1.set_title('ylabels not aligned')
    ax1.set_ylabel('misaligned 1', bbox=box)
    ax1.set_ylim(0, 2000)

    ax3 = axs[1, 0]
    ax3.set_ylabel('misaligned 2', bbox=box)
    ax3.plot(np.random.rand(10))

    ax2 = axs[0, 1]
    ax2.set_title('ylabels aligned')
    ax2.plot(2000*np.random.rand(10))
    ax2.set_ylabel('aligned 1', bbox=box)
    ax2.set_ylim(0, 2000)

    ax4 = axs[1, 1]
    ax4.plot(np.random.rand(10))
    ax4.set_ylabel('aligned 2', bbox=box)

fig, axs = plt.subplots(2, 2)
fig.subplots_adjust(left=0.2, wspace=0.6)
make_plot(axs)
plt.show()

Aligner automatiquement les étiquettes sur l'axe des ordonnées

La troisième étape consiste à aligner automatiquement les étiquettes sur l'axe des ordonnées en utilisant la méthode .Figure.align_ylabels.

fig, axs = plt.subplots(2, 2)
fig.subplots_adjust(left=0.2, wspace=0.6)
make_plot(axs)
fig.align_ylabels(axs[:, 1])
plt.show()

Aligner manuellement les étiquettes sur l'axe des ordonnées

La quatrième étape consiste à aligner manuellement les étiquettes sur l'axe des ordonnées en utilisant la méthode ~.Axis.set_label_coords de l'objet de l'axe des ordonnées.

fig, axs = plt.subplots(2, 2)
fig.subplots_adjust(left=0.2, wspace=0.6)
make_plot(axs)

labex = -0.3  ## axes coords

for j in range(2):
    axs[j, 1].yaxis.set_label_coords(labex, 0.5)

plt.show()

Sommaire

Dans ce laboratoire, vous avez appris à aligner les étiquettes sur l'axe des ordonnées dans les graphiques Matplotlib. L'alignement des étiquettes sur l'axe des ordonnées est important pour améliorer la lisibilité des graphiques, en particulier lorsqu'il y a plusieurs sous-graphiques. Nous avons abordé deux méthodes pour aligner les étiquettes sur l'axe des ordonnées, l'une en utilisant un appel court à .Figure.align_ylabels et la seconde une manière manuelle d'aligner les étiquettes.

Conclusion

Félicitations ! Vous avez appris à aligner les étiquettes sur l'axe des ordonnées dans les graphiques Matplotlib. Continuez à pratiquer et à explorer la bibliothèque Matplotlib pour améliorer vos compétences en visualisation.

Sommaire

Félicitations ! Vous avez terminé le laboratoire Align Y-Labels. Vous pouvez pratiquer d'autres laboratoires dans LabEx pour améliorer vos compétences.