Graphiques de niveau masqués 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 la visualisation de données, les graphes de niveau sont couramment utilisés pour afficher des données tridimensionnelles sur un plan bidimensionnel. Matplotlib est une bibliothèque de tracé largement utilisée en Python qui fournit des fonctionnalités pour créer différents types de graphes, y compris les graphes de niveau. Dans ce laboratoire, nous allons apprendre à créer des graphes de niveau masqués à l'aide de Matplotlib et à illustrer la différence entre l'activation et la désactivation des masques de coin.

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 la pratique.

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

Pour créer des graphes de niveau masqués à l'aide de Matplotlib, nous devons importer les bibliothèques suivantes :

  • numpy : une bibliothèque pour le langage de programmation Python qui offre une prise en charge pour des tableaux et matrices multi-dimensionnels de grande taille.
  • matplotlib.pyplot : une collection de fonctions qui fournit une interface simple pour créer différents types de graphes.
import matplotlib.pyplot as plt
import numpy as np

Création de données pour le tracé

Dans cette étape, nous allons créer des données pour tracer sur un graphe de niveau. Nous utilisons la fonction np.meshgrid() pour créer une grille de points, puis calculons les valeurs de z à l'aide des fonctions sinus et cosinus.

## Données à tracer.
x, y = np.meshgrid(np.arange(7), np.arange(10))
z = np.sin(0.5 * x) * np.cos(0.52 * y)

Masquage des données

Dans cette étape, nous allons masquer certaines des valeurs de z à l'aide d'un masque booléen. Nous créons un tableau mask à l'aide de la fonction np.zeros_like(), puis définissons certaines des valeurs sur True pour les masquer.

## Masquer diverses valeurs de z.
mask = np.zeros_like(z, dtype=bool)
mask[2, 3:5] = True
mask[3:5, 4] = True
mask[7, 2] = True
mask[5, 0] = True
mask[0, 6] = True
z = np.ma.array(z, mask=mask)

Création du tracé

Dans cette étape, nous allons créer le graphe de niveau masqué à l'aide de la fonction contourf(). Nous passons les tableaux x, y et z à cette fonction, ainsi que l'argument corner_mask défini sur True ou False selon le type de graphe que nous souhaitons créer.

corner_masks = [False, True]
fig, axs = plt.subplots(ncols=2)
for ax, corner_mask in zip(axs, corner_masks):
    cs = ax.contourf(x, y, z, corner_mask=corner_mask)
    ax.contour(cs, colors='k')
    ax.set_title(f'{corner_mask=}')

    ## Tracer la grille.
    ax.grid(c='k', ls='-', alpha=0.3)

    ## Indiquer les points masqués avec des cercles rouges.
    ax.plot(np.ma.array(x, mask=~mask), y, 'ro')

plt.show()

Interprétation des résultats

Dans cette étape, nous allons interpréter les résultats du graphe de niveau masqué. Nous pouvons observer que le paramètre corner_mask contrôle si les points angulaires du graphe sont masqués ou non. Lorsque corner_mask est défini sur True, les coins du graphe de niveau sont masqués, tandis que lorsqu'il est défini sur False, ils ne le sont pas. Nous pouvons également voir que les points masqués sont indiqués par des cercles rouges.

Sommaire

Dans ce laboratoire, nous avons appris à créer des graphes de niveau masqués à l'aide de Matplotlib. Nous avons tout d'abord importé les bibliothèques requises puis créé les données à tracer. Nous avons ensuite masqué certaines des valeurs de z à l'aide d'un masque booléen, et créé le graphe de niveau à l'aide de la fonction contourf(). Enfin, nous avons interprété les résultats et observé la différence entre le cas où les masques angulaires sont activés et le cas où ils ne le sont pas.