Visualisation avec Matplotlib et des collections

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

Ce tutoriel vous guidera dans la création d'une visualisation à l'aide de la collection Matplotlib. Le tutoriel vous montrera comment utiliser LineCollection, PolyCollection et RegularPolyCollection. Le tutoriel vous montrera également comment utiliser les arguments clés offsets et offset_transform de LineCollection et PolyCollection pour définir les positions des spirales. Le tutoriel vous montrera également comment utiliser RegularPolyCollection pour créer des polygones réguliers.

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

Importez les bibliothèques nécessaires

import matplotlib.pyplot as plt
import numpy as np

from matplotlib import collections, transforms

La première étape consiste à importer les bibliothèques nécessaires. Nous utiliserons Matplotlib et Numpy pour ce tutoriel.

Créez des spirales

nverts = 50
npts = 100

## Make some spirals
r = np.arange(nverts)
theta = np.linspace(0, 2*np.pi, nverts)
xx = r * np.sin(theta)
yy = r * np.cos(theta)
spiral = np.column_stack([xx, yy])

L'étape suivante est de créer des spirales à l'aide de Numpy. Nous utiliserons les fonctions sin et cos pour créer les spirales.

Créez des décalages

## Fixing random state for reproducibility
rs = np.random.RandomState(19680801)

## Make some offsets
xyo = rs.randn(npts, 2)

La troisième étape est de créer des décalages à l'aide de Numpy. Nous utiliserons la fonction aléatoire pour créer les décalages.

Créez une LineCollection à l'aide de décalages

col = collections.LineCollection(
    [spiral], offsets=xyo, offset_transform=ax1.transData)
trans = fig.dpi_scale_trans + transforms.Affine2D().scale(1.0/72.0)
col.set_transform(trans)
col.set_color(colors)

ax1.add_collection(col, autolim=True)
ax1.autoscale_view()

ax1.set_title('LineCollection using offsets')

La quatrième étape est de créer une LineCollection à l'aide de décalages. Nous utiliserons la LineCollection pour créer des courbes avec des décalages. Nous utiliserons également l'offset_transform pour définir les positions des courbes.

Créez une PolyCollection à l'aide de décalages

col = collections.PolyCollection(
    [spiral], offsets=xyo, offset_transform=ax2.transData)
trans = transforms.Affine2D().scale(fig.dpi/72.0)
col.set_transform(trans)
col.set_color(colors)

ax2.add_collection(col, autolim=True)
ax2.autoscale_view()

ax2.set_title('PolyCollection using offsets')

La cinquième étape est de créer une PolyCollection à l'aide de décalages. Nous utiliserons la PolyCollection pour remplir les courbes de couleurs. Nous utiliserons également l'offset_transform pour définir les positions des courbes.

Créez une RegularPolyCollection à l'aide de décalages

col = collections.RegularPolyCollection(
    7, sizes=np.abs(xx) * 10.0, offsets=xyo, offset_transform=ax3.transData)
trans = transforms.Affine2D().scale(fig.dpi / 72.0)
col.set_transform(trans)
col.set_color(colors)

ax3.add_collection(col, autolim=True)
ax3.autoscale_view()

ax3.set_title('RegularPolyCollection using offsets')

La sixième étape est de créer une RegularPolyCollection à l'aide de décalages. Nous utiliserons la RegularPolyCollection pour créer des polygones réguliers avec des décalages. Nous utiliserons également l'offset_transform pour définir les positions des polygones.

Créez des décalages de données successifs

## Simulez une série de profils de courants océaniques, successivement
## décalés de 0,1 m/s de manière à former ce qui est parfois appelé
## un graphique "en cascade" ou un graphique "étagé".

nverts = 60
ncurves = 20
offs = (0,1, 0,0)

yy = np.linspace(0, 2*np.pi, nverts)
ym = np.max(yy)
xx = (0,2 + (ym - yy) / ym) ** 2 * np.cos(yy - 0,4) * 0,5
segs = []
for i in range(ncurves):
    xxx = xx + 0,02*rs.randn(nverts)
    curve = np.column_stack([xxx, yy * 100])
    segs.append(curve)

col = collections.LineCollection(segs, offsets=offs)
ax4.add_collection(col, autolim=True)
col.set_color(colors)
ax4.autoscale_view()

ax4.set_title('Successive data offsets')
ax4.set_xlabel('Composante de vitesse zonale (m/s)')
ax4.set_ylabel('Profondeur (m)')
ax4.set_ylim(ax4.get_ylim()[::-1])

La septième étape est de créer des décalages de données successifs. Nous utiliserons la LineCollection pour créer des courbes avec des décalages successifs.

Sommaire

Ce tutoriel vous a montré comment utiliser les collections Matplotlib pour créer des visualisations. Vous avez appris à utiliser LineCollection, PolyCollection et RegularPolyCollection pour créer des courbes et des polygones. Vous avez également appris à utiliser les arguments clés offsets et offset_transform des collections LineCollection et PolyCollection pour définir les positions des spirales.