Création de formes avec Python Matplotlib

Beginner

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

Introduction

Ce tutoriel est conçu pour guider les utilisateurs sur la manière de créer des cercles, des segments de cercle et des polygones à l'aide de Python Matplotlib. Les utilisateurs pourront également utiliser .collections.PatchCollection pour visualiser les formes créées.

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 Notebook pour accéder à Jupyter Notebook pour pratiquer.

Parfois, vous devrez peut-être attendre quelques secondes pour que Jupyter Notebook ait fini de charger. La validation des opérations ne peut pas être automatisée en raison des limitations de 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.

Importez les bibliothèques nécessaires

Tout d'abord, nous devons importer les bibliothèques nécessaires.

import matplotlib.pyplot as plt
import numpy as np

from matplotlib.collections import PatchCollection
from matplotlib.patches import Circle, Polygon, Wedge

Créez une figure et un axe

Nous créons une figure et un axe pour tracer les formes.

fig, ax = plt.subplots()

Définissez le nombre de sommets et le nombre de formes

Nous définissons le nombre de sommets et le nombre de formes à créer.

resolution = 50  ## le nombre de sommets
N = 3

Créez des cercles

Nous créons des cercles à l'aide de Circle() et les ajoutons à une liste de patches.

x = np.random.rand(N)
y = np.random.rand(N)
radii = 0.1*np.random.rand(N)
patches = []
for x1, y1, r in zip(x, y, radii):
    circle = Circle((x1, y1), r)
    patches.append(circle)

Créez des segments circulaires

Nous créons des segments circulaires à l'aide de Wedge() et les ajoutons à la liste de patches.

x = np.random.rand(N)
y = np.random.rand(N)
radii = 0.1*np.random.rand(N)
theta1 = 360.0*np.random.rand(N)
theta2 = 360.0*np.random.rand(N)
for x1, y1, r, t1, t2 in zip(x, y, radii, theta1, theta2):
    wedge = Wedge((x1, y1), r, t1, t2)
    patches.append(wedge)

Ajoutez des conditions limites aux segments circulaires

Nous ajoutons des conditions limites aux segments circulaires.

patches += [
    Wedge((.3,.7),.1, 0, 360),             ## Cercle complet
    Wedge((.7,.8),.2, 0, 360, width=0.05),  ## Bague complète
    Wedge((.8,.3),.2, 0, 45),              ## Secteur complet
    Wedge((.8,.3),.2, 45, 90, width=0.10),  ## Secteur de bague
]

Créez des polygones

Nous créons des polygones à l'aide de Polygon() et les ajoutons à la liste de patches.

for i in range(N):
    polygon = Polygon(np.random.rand(N, 2), closed=True)
    patches.append(polygon)

Définissez les couleurs et créez une PatchCollection

Nous définissons les couleurs des formes et créons une PatchCollection().

colors = 100 * np.random.rand(len(patches))
p = PatchCollection(patches, alpha=0.4)
p.set_array(colors)
ax.add_collection(p)
fig.colorbar(p, ax=ax)

Affichez la figure

Nous affichons la figure.

plt.show()

Sommaire

Ce tutoriel a montré comment créer des cercles, des segments circulaires et des polygones à l'aide de Python Matplotlib. Nous avons également appris à utiliser .collections.PatchCollection pour visualiser les formes créées.