Tracés de courbes de niveau remplies avec 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

Dans ce tutoriel, nous allons apprendre à créer des graphes de courbes de niveau remplies à l'aide de la méthode contourf de la bibliothèque Matplotlib. Nous aborderons la création de courbes de niveau remplies avec des niveaux automatiques et explicites, ainsi que la définition des paramètres de la carte de couleurs et des extensions.

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 à Jupyter Notebook et 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.

Importation des bibliothèques et création des données

Tout d'abord, nous devons importer les bibliothèques nécessaires et créer quelques données pour tracer.

import matplotlib.pyplot as plt
import numpy as np

## Création des données
origin = 'lower'
delta = 0.025
x = y = np.arange(-3.0, 3.01, delta)
X, Y = np.meshgrid(x, y)
Z1 = np.exp(-X**2 - Y**2)
Z2 = np.exp(-(X - 1)**2 - (Y - 1)**2)
Z = (Z1 - Z2) * 2

Création d'un tracé de courbes de niveau remplies avec des niveaux automatiques

Ensuite, nous allons créer un tracé de courbes de niveau remplies avec des niveaux automatiques. Nous utiliserons la méthode contourf avec le paramètre cmap défini sur plt.cm.bone pour spécifier la carte de couleurs. Nous ajouterons également des lignes de niveau avec la méthode contour et passerons un sous-ensemble des niveaux de contour utilisés pour les courbes de niveau remplies.

## Création d'un tracé de courbes de niveau remplies avec des niveaux automatiques
fig, ax = plt.subplots()
CS = ax.contourf(X, Y, Z, 10, cmap=plt.cm.bone, origin=origin)
CS2 = ax.contour(CS, levels=CS.levels[::2], colors='r', origin=origin)

## Ajout du titre, des étiquettes d'axe et de la barre de couleur
ax.set_title('Tracé de courbes de niveau remplies avec des niveaux automatiques')
ax.set_xlabel('Étiquette de X')
ax.set_ylabel('Étiquette de Y')
cbar = fig.colorbar(CS)
cbar.ax.set_ylabel('Étiquette de Z')
cbar.add_lines(CS2)

## Affichage du tracé
plt.show()

Création d'un tracé de courbes de niveau remplies avec des niveaux explicites

Maintenant, nous allons créer un tracé de courbes de niveau remplies avec des niveaux explicites. Nous utiliserons la méthode contourf avec le paramètre levels défini sur une liste de valeurs pour spécifier les niveaux de contour. Nous définirons également la carte de couleurs sur une liste de couleurs et le paramètre extend sur 'both' pour afficher les valeurs en dehors de la plage des niveaux.

## Création d'un tracé de courbes de niveau remplies avec des niveaux explicites
fig, ax = plt.subplots()
levels = [-1.5, -1, -0.5, 0, 0.5, 1]
CS = ax.contourf(X, Y, Z, levels, colors=('r', 'g', 'b'),
                 origin=origin, extend='both')
CS2 = ax.contour(X, Y, Z, levels, colors=('k',),
                 linewidths=(3,), origin=origin)

## Ajout du titre, des étiquettes d'axe et de la barre de couleur
ax.set_title('Tracé de courbes de niveau remplies avec des niveaux explicites')
ax.set_xlabel('Étiquette de X')
ax.set_ylabel('Étiquette de Y')
cbar = fig.colorbar(CS)
cbar.ax.set_ylabel('Étiquette de Z')

## Affichage du tracé
plt.show()

Définir la carte de couleurs et les paramètres d'extension

Enfin, nous allons définir la carte de couleurs et les paramètres d'extension. Nous utiliserons la méthode with_extremes pour définir les couleurs pour les valeurs en dehors de la plage des niveaux. Nous créerons également quatre sous-graphiques pour montrer les quatre paramètres d'extension possibles : 'neither', 'both', 'min' et 'max'.

## Définir la carte de couleurs et les paramètres d'extension
extends = ["neither", "both", "min", "max"]
cmap = plt.colormaps["winter"].with_extremes(under="magenta", over="yellow")

## Créer des sous-graphiques avec différents paramètres d'extension
fig, axs = plt.subplots(2, 2, layout="constrained")
for ax, extend in zip(axs.flat, extends):
    cs = ax.contourf(X, Y, Z, levels, cmap=cmap, extend=extend, origin=origin)
    fig.colorbar(cs, ax=ax, shrink=0.9)
    ax.set_title("extend = %s" % extend)
    ax.locator_params(nbins=4)

## Afficher le tracé
plt.show()

Sommaire

Dans ce tutoriel, nous avons appris à créer des tracés de courbes de niveau remplies en utilisant la méthode contourf de la bibliothèque Matplotlib. Nous avons vu comment créer des courbes de niveau remplies avec des niveaux automatiques et explicites, et comment définir la carte de couleurs et les paramètres d'extension. Avec ces compétences, vous pouvez créer des tracés de courbes de niveau beaux et informatifs pour vos données.