Grilles et ombre avec pcolormesh

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

Matplotlib est une bibliothèque de visualisation de données pour Python. Elle fournit une variété d'outils pour créer des visualisations statiques, animées et interactives en Python. Dans ce laboratoire, nous allons apprendre à utiliser les fonctions pcolormesh et pcolor de Matplotlib pour visualiser des grilles 2D.

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'étude 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.

Importation des bibliothèques requises

Tout d'abord, nous devons importer les bibliothèques requises, Matplotlib et NumPy, en exécutant le bloc de code suivant :

import matplotlib.pyplot as plt
import numpy as np

Création de données pour la visualisation

Ensuite, nous allons créer une grille 2D que nous utiliserons pour la visualisation. Nous pouvons créer une grille à l'aide de la fonction meshgrid de NumPy. La fonction meshgrid crée une grille de points à partir de deux vecteurs, x et y, qui représentent les coordonnées des points de la grille. Nous allons créer une grille de 5x5 points à l'aide du bloc de code suivant :

nrows = 5
ncols = 5
x = np.arange(ncols + 1)
y = np.arange(nrows + 1)
X, Y = np.meshgrid(x, y)
Z = X + Y

Ombré plat

La fonction pcolormesh de Matplotlib peut visualiser des grilles 2D. La spécification de grille avec les hypothèses les moins nombreuses est shading='flat' et si la grille est d'une dimension supérieure à la donnée dans chaque dimension, c'est-à-dire a une forme (M+1, N+1). Dans ce cas, X et Y spécifient les coins des quadrilatères qui sont colorés avec les valeurs de Z. Nous pouvons visualiser la grille à l'aide du bloc de code suivant :

fig, ax = plt.subplots()
ax.pcolormesh(X, Y, Z, shading='flat', cmap='viridis')
ax.set_title('Flat Shading')
plt.show()

Ombré plat, grille de même forme

Si la grille est de la même forme que les données dans chaque dimension, nous ne pouvons pas utiliser shading='flat'. Historique : Matplotlib supprimait silencieusement la dernière ligne et la dernière colonne de Z dans ce cas, pour correspondre au comportement de Matlab. Si ce comportement est toujours souhaité, supprimez simplement la dernière ligne et la dernière colonne manuellement. Nous pouvons visualiser la grille à l'aide du bloc de code suivant :

fig, ax = plt.subplots()
ax.pcolormesh(x, y, Z[:-1, :-1], shading='flat', cmap='viridis')
ax.set_title('Flat Shading, Same Shape Grid')
plt.show()

Ombré par valeur la plus proche, grille de même forme

Généralement, supprimer une ligne et une colonne de données n'est pas ce que l'utilisateur veut lorsqu'ils rendent X, Y et Z toutes de la même forme. Dans ce cas, Matplotlib autorise shading='nearest' et centre les quadrilatères colorés sur les points de la grille. Si une grille de forme incorrecte est passée avec shading='nearest', une erreur est levée. Nous pouvons visualiser la grille à l'aide du bloc de code suivant :

fig, ax = plt.subplots()
ax.pcolormesh(X, Y, Z, shading='nearest', cmap='viridis')
ax.set_title('Nearest Shading, Same Shape Grid')
plt.show()

Ombré automatique

Il se peut que l'utilisateur souhaite que le code choisisse automatiquement lequel utiliser. Dans ce cas, shading='auto' décidera d'utiliser l'ombrage flat ou nearest en fonction des formes de X, Y et Z. Nous pouvons visualiser la grille à l'aide du bloc de code suivant :

fig, ax = plt.subplots()
ax.pcolormesh(x, y, Z, shading='auto', cmap='viridis')
ax.set_title('Auto Shading')
plt.show()

Ombré de Gouraud

On peut également spécifier l'ombrage de Gouraud, où la couleur dans les quadrilatères est interpolée linéairement entre les points de la grille. Les formes de X, Y et Z doivent être les mêmes. Nous pouvons visualiser la grille à l'aide du bloc de code suivant :

fig, ax = plt.subplots()
ax.pcolormesh(X, Y, Z, shading='gouraud', cmap='viridis')
ax.set_title('Gouraud Shading')
plt.show()

Récapitulatif

Dans ce laboratoire, nous avons appris à utiliser les fonctions pcolormesh et pcolor de Matplotlib pour visualiser des grilles 2D. Nous avons appris à connaître les différents options d'ombrage, y compris flat, nearest, auto et gouraud. Nous avons également appris à créer une grille 2D à l'aide de la fonction meshgrid de NumPy.