Contrôle de la visualisation avec Matplotlib en Python

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

Matplotlib est une bibliothèque de visualisation de données en Python qui est utilisée pour créer des visualisations statiques, animées et interactives en Python. Elle fournit une API orientée objet pour intégrer des graphiques dans des applications utilisant des kits de bibliothèques GUI généralistes tels que Tkinter, wxPython, Qt ou GTK. Dans ce laboratoire, nous allons apprendre à contrôler les limites de vue et les bords collants dans Matplotlib à l'aide de Python.

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

Traçage avec des marges

La méthode margins() dans Matplotlib peut être utilisée pour définir des marges dans le tracé au lieu d'utiliser les méthodes set_xlim() et set_ylim(). Dans cette étape, nous allons apprendre à zoomer dans et hors d'un tracé à l'aide de la méthode margins() au lieu des méthodes set_xlim() et set_ylim().

import matplotlib.pyplot as plt
import numpy as np

def f(t):
    return np.exp(-t) * np.cos(2*np.pi*t)

t1 = np.arange(0.0, 3.0, 0.01)

## créer un sous-graphique avec des marges
ax1 = plt.subplot(212)
ax1.margins(0.05) ## marge par défaut est 0.05, valeur 0 signifie ajustement
ax1.plot(t1, f(t1))

## créer un sous-graphique avec des marges élargies
ax2 = plt.subplot(221)
ax2.margins(2, 2) ## valeurs >0.0 élargissent
ax2.plot(t1, f(t1))
ax2.set_title('Zoomé out')

## créer un sous-graphique avec des marges réduites
ax3 = plt.subplot(222)
ax3.margins(x=0, y=-0.25) ## valeurs dans (-0.5, 0.0) zooment sur le centre
ax3.plot(t1, f(t1))
ax3.set_title('Zoomé in')

plt.show()

Bords collants

Certaines fonctions de tracé dans Matplotlib rendent les limites de l'axe "collantes" ou immunes à la méthode margins(). Par exemple, imshow() et pcolor() supposent que l'utilisateur souhaite que les limites soient strictes autour des pixels affichés dans le tracé. Si ce comportement n'est pas souhaité, vous devez définir use_sticky_edges sur False. Dans cette étape, nous allons apprendre à contourner les bords collants dans Matplotlib.

## créer une grille
y, x = np.mgrid[:5, 1:6]

## définir les coordonnées du polygone
poly_coords = [
    (0.25, 2.75), (3.25, 2.75),
    (2.25, 0.75), (0.25, 0.75)
]

## créer des sous-graphiques
fig, (ax1, ax2) = plt.subplots(ncols=2)

## utiliser des bords collants pour ax1 et désactiver les bords collants pour ax2
ax2.use_sticky_edges = False

## tracer sur les deux sous-graphiques
for ax, status in zip((ax1, ax2), ('Est', 'N\'est pas')):
    cells = ax.pcolor(x, y, x+y, cmap='inferno', shading='auto') ## collant
    ax.add_patch(
        Polygon(poly_coords, color='forestgreen', alpha=0.5)
    ) ## non collant
    ax.margins(x=0.1, y=0.05)
    ax.set_aspect('equal')
    ax.set_title(f'{status} Collant')

plt.show()

Sommaire

Dans ce laboratoire, nous avons appris à contrôler les limites de vue et les bords collants dans Matplotlib à l'aide de Python. Nous avons appris à zoomer dans et hors d'un tracé à l'aide de la méthode margins() au lieu des méthodes set_xlim() et set_ylim(). Nous avons également appris à contourner les bords collants dans Matplotlib à l'aide de la propriété use_sticky_edges.