Visualisation des lignes de niveau de 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

Ce laboratoire vous guidera sur la manière d'afficher vos propres lignes de niveau et polygones à l'aide de ContourSet dans Matplotlib. Les lignes de niveau pour chaque niveau sont une liste/tuple de polygones. Les contours remplis entre deux niveaux sont également une liste/tuple de polygones. Les points peuvent être ordonnés dans le sens horaire ou antihoraire.

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

Importez les bibliothèques nécessaires

La première étape consiste à importer les bibliothèques nécessaires. Dans ce laboratoire, nous utiliserons Matplotlib.

import matplotlib.pyplot as plt
import matplotlib.cm as cm
from matplotlib.contour import ContourSet
from matplotlib.path import Path

Définissez les lignes de niveau et les polygones

L'étape suivante est de définir les lignes de niveau et les polygones. Dans cet exemple, nous avons des lignes et des contours remplis entre deux niveaux.

## Les lignes de niveau pour chaque niveau sont une liste/tuple de polygones.
lines0 = [[[0, 0], [0, 4]]]
lines1 = [[[2, 0], [1, 2], [1, 3]]]
lines2 = [[[3, 0], [3, 2]], [[3, 3], [3, 4]]]  ## Notez deux lignes.

## Les contours remplis entre deux niveaux sont également une liste/tuple de polygones.
## Les points peuvent être ordonnés dans le sens horaire ou antihoraire.
filled01 = [[[0, 0], [0, 4], [1, 3], [1, 2], [2, 0]]]
filled12 = [[[2, 0], [3, 0], [3, 2], [1, 3], [1, 2]],   ## Notez deux polygones.
            [[1, 4], [3, 4], [3, 3]]]

Créez le tracé

L'étape suivante est de créer le tracé. Cela peut être fait à l'aide de la fonction ContourSet.

fig, ax = plt.subplots()

## Contours remplis en utilisant filled=True.
cs = ContourSet(ax, [0, 1, 2], [filled01, filled12], filled=True, cmap=cm.bone)
cbar = fig.colorbar(cs)

## Lignes de niveau (non-remplies).
lines = ContourSet(
    ax, [0, 1, 2], [lines0, lines1, lines2], cmap=cm.cool, linewidths=3)
cbar.add_lines(lines)

ax.set(xlim=(-0.5, 3.5), ylim=(-0.5, 4.5),
       title='Contours spécifiés par l\'utilisateur')

Créez des contours remplis avec des trous

Plusieurs lignes de contour remplies peuvent être spécifiées dans une seule liste de sommets de polygone, ainsi qu'une liste de types de sommets (types de code) comme décrit dans la classe Path. Cela est particulièrement utile pour les polygones avec des trous.

fig, ax = plt.subplots()
filled01 = [[[0, 0], [3, 0], [3, 3], [0, 3], [1, 1], [1, 2], [2, 2], [2, 1]]]
M = Path.MOVETO
L = Path.LINETO
kinds01 = [[M, L, L, L, M, L, L, L]]
cs = ContourSet(ax, [0, 1], [filled01], [kinds01], filled=True)
cbar = fig.colorbar(cs)

ax.set(xlim=(-0.5, 3.5), ylim=(-0.5, 3.5),
       title='Contours remplis spécifiés par l\'utilisateur avec des trous')

Sommaire

Dans ce laboratoire, nous avons appris à afficher nos propres lignes de niveau et polygones à l'aide de ContourSet dans Matplotlib. Nous avons défini les lignes de niveau et les polygones, créé le tracé et créé des contours remplis avec des trous.