Tracer des formes avec Matplotlib en Python

Beginner

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

Introduction

Dans ce laboratoire, nous allons apprendre à tracer diverses formes à l'aide de la bibliothèque Matplotlib en Python. Matplotlib est une bibliothèque de tracé pour le langage de programmation Python et son extension de mathématiques numériques NumPy. Elle fournit une API orientée objet pour intégrer des graphiques dans des applications en utilisant des outils GUI de type général tels que Tkinter, wxPython, Qt ou GTK.

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 pratiquer.

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

Avant de commencer à utiliser Matplotlib, nous devons importer les bibliothèques nécessaires.

import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
import matplotlib.path as mpath

Définir les formes

Nous allons définir les formes que nous voulons tracer à l'aide de Matplotlib. Dans cet exemple, nous allons tracer un cercle, un rectangle, un segment de cercle, un polygone régulier, une ellipse, une flèche, un patch de chemin et un patch de boîte élégante.

shapes = [
    mpatches.Circle((0, 0), 0.1, ec="none"),
    mpatches.Rectangle((-0.025, -0.05), 0.05, 0.1, ec="none"),
    mpatches.Wedge((0, 0), 0.1, 30, 270, ec="none"),
    mpatches.RegularPolygon((0, 0), 5, radius=0.1),
    mpatches.Ellipse((0, 0), 0.2, 0.1),
    mpatches.Arrow(-0.05, -0.05, 0.1, 0.1, width=0.1),
    mpatches.PathPatch(mpath.Path([(0, 0), (0.5, 0.5), (1, 0)], [1, 2, 2]), ec="none"),
    mpatches.FancyBboxPatch((-0.025, -0.05), 0.05, 0.1, ec="none",
                            boxstyle=mpatches.BoxStyle("Round", pad=0.02)),
]

Dessiner les formes

Nous allons maintenant tracer les formes à l'aide de Matplotlib en parcourant la liste shapes et en les ajoutant au tracé.

fig, ax = plt.subplots()
for shape in shapes:
    ax.add_artist(shape)
plt.xlim([-0.5, 1.5])
plt.ylim([-0.5, 1.5])
plt.axis('off')
plt.show()

Personnaliser les formes

Nous pouvons personnaliser les formes en définissant diverses propriétés telles que la couleur, la couleur de bord et l'opacité.

shapes = [
    mpatches.Circle((0, 0), 0.1, color='red', alpha=0.5),
    mpatches.Rectangle((-0.025, -0.05), 0.05, 0.1, ec="none", color='green', alpha=0.5),
    mpatches.Wedge((0, 0), 0.1, 30, 270, ec="none", color='blue', alpha=0.5),
    mpatches.RegularPolygon((0, 0), 5, radius=0.1, color='orange', alpha=0.5),
    mpatches.Ellipse((0, 0), 0.2, 0.1, color='purple', alpha=0.5),
    mpatches.Arrow(-0.05, -0.05, 0.1, 0.1, width=0.1, color='yellow', alpha=0.5),
    mpatches.PathPatch(mpath.Path([(0, 0), (0.5, 0.5), (1, 0)], [1, 2, 2]), ec="none", color='pink', alpha=0.5),
    mpatches.FancyBboxPatch((-0.025, -0.05), 0.05, 0.1, ec="none", color='brown', alpha=0.5,
                            boxstyle=mpatches.BoxStyle("Round", pad=0.02)),
]

fig, ax = plt.subplots()
for shape in shapes:
    ax.add_artist(shape)
plt.xlim([-0.5, 1.5])
plt.ylim([-0.5, 1.5])
plt.axis('off')
plt.show()

Enregistrer le tracé

Nous pouvons enregistrer le tracé sous forme de fichier image à l'aide de la fonction savefig.

fig, ax = plt.subplots()
for shape in shapes:
    ax.add_artist(shape)
plt.xlim([-0.5, 1.5])
plt.ylim([-0.5, 1.5])
plt.axis('off')
plt.savefig('shapes.png')

Sommaire

Dans ce laboratoire, nous avons appris à tracer diverses formes à l'aide de la bibliothèque Matplotlib en Python. Nous avons appris à définir des formes, à tracer des formes, à personnaliser des formes et à enregistrer le tracé sous forme de fichier image. Matplotlib fournit une API facile à utiliser pour tracer différents types de graphiques et est largement utilisée dans la visualisation de données.