Tutoriel sur la création de tracés QuadMesh 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

Ce tutoriel vous guidera dans l'utilisation de la bibliothèque Matplotlib pour créer un tracé QuadMesh. QuadMesh est une généralisation plus rapide de la fonction pcolor, mais avec certaines restrictions. Le démonstration de ce tutoriel illustrera un bogue dans QuadMesh avec des données masquées.

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL matplotlib(("Matplotlib")) -.-> matplotlib/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/ModulesandPackagesGroup(["Modules and Packages"]) matplotlib(("Matplotlib")) -.-> matplotlib/AdvancedTopicsGroup(["Advanced Topics"]) python(("Python")) -.-> python/DataScienceandMachineLearningGroup(["Data Science and Machine Learning"]) python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) matplotlib/BasicConceptsGroup -.-> matplotlib/importing_matplotlib("Importing Matplotlib") python/DataStructuresGroup -.-> python/lists("Lists") python/DataStructuresGroup -.-> python/tuples("Tuples") python/FunctionsGroup -.-> python/build_in_functions("Build-in Functions") python/ModulesandPackagesGroup -.-> python/importing_modules("Importing Modules") python/ModulesandPackagesGroup -.-> python/using_packages("Using Packages") matplotlib/AdvancedTopicsGroup -.-> matplotlib/matplotlib_config("Customizing Matplotlib Configurations") python/DataScienceandMachineLearningGroup -.-> python/numerical_computing("Numerical Computing") python/DataScienceandMachineLearningGroup -.-> python/data_visualization("Data Visualization") subgraph Lab Skills matplotlib/importing_matplotlib -.-> lab-48892{{"Tutoriel sur la création de tracés QuadMesh avec Matplotlib"}} python/lists -.-> lab-48892{{"Tutoriel sur la création de tracés QuadMesh avec Matplotlib"}} python/tuples -.-> lab-48892{{"Tutoriel sur la création de tracés QuadMesh avec Matplotlib"}} python/build_in_functions -.-> lab-48892{{"Tutoriel sur la création de tracés QuadMesh avec Matplotlib"}} python/importing_modules -.-> lab-48892{{"Tutoriel sur la création de tracés QuadMesh avec Matplotlib"}} python/using_packages -.-> lab-48892{{"Tutoriel sur la création de tracés QuadMesh avec Matplotlib"}} matplotlib/matplotlib_config -.-> lab-48892{{"Tutoriel sur la création de tracés QuadMesh avec Matplotlib"}} python/numerical_computing -.-> lab-48892{{"Tutoriel sur la création de tracés QuadMesh avec Matplotlib"}} python/data_visualization -.-> lab-48892{{"Tutoriel sur la création de tracés QuadMesh avec Matplotlib"}} end

Importation des bibliothèques nécessaires

import numpy as np
from matplotlib import pyplot as plt

Définition des données

n = 12
x = np.linspace(-1.5, 1.5, n)
y = np.linspace(-1.5, 1.5, n * 2)
X, Y = np.meshgrid(x, y)
Qx = np.cos(Y) - np.cos(X)
Qz = np.sin(Y) + np.sin(X)
Z = np.sqrt(X**2 + Y**2) / 5
Z = (Z - Z.min()) / (Z.max() - Z.min())
Zm = np.ma.masked_where(np.abs(Qz) < 0.5 * np.max(Qz), Z)

Création du tracé

fig, axs = plt.subplots(nrows=1, ncols=3)
axs[0].pcolormesh(Qx, Qz, Z, shading='gouraud')
axs[0].set_title('Sans valeurs masquées')
cmap = plt.colormaps[plt.rcParams['image.cmap']].with_extremes(bad='y')
axs[1].pcolormesh(Qx, Qz, Zm, shading='gouraud', cmap=cmap)
axs[1].set_title('Avec valeurs masquées')
axs[2].pcolormesh(Qx, Qz, Zm, shading='gouraud')
axs[2].set_title('Avec valeurs masquées')
fig.tight_layout()
plt.show()

Explication

  • Étape 2 : Les données sont définies à l'aide de tableaux numpy. Les tableaux X et Y sont utilisés pour créer une grille de maillage, qui est utilisée pour calculer les valeurs de Qx et Qz. Les valeurs de Z sont ensuite calculées en fonction des valeurs de Qx et Qz. Le tableau Zm est créé en masquant les valeurs où la valeur absolue de Qz est inférieure à 0,5 fois la valeur maximale de Qz.
  • Étape 3 : Une figure avec trois sous-graphiques est créée à l'aide de la méthode subplots. La fonction pcolormesh est utilisée pour créer un tracé QuadMesh pour chaque sous-graphique. Le premier sous-graphique montre le tracé sans valeurs masquées. Le second sous-graphique montre le tracé avec des valeurs masquées et une palette de couleurs personnalisée où la région masquée est jaune. Le troisième sous-graphique montre le tracé avec des valeurs masquées et la palette de couleurs par défaut où la région masquée est transparente.
  • Étape 4 : Le tracé QuadMesh est un outil utile pour visualiser des données 2D. Dans ce tutoriel, nous avons appris comment utiliser la fonction pcolormesh pour créer un tracé QuadMesh et comment gérer les données masquées dans le tracé.

Sommaire

Ce tutoriel a fourni un guide étape par étape pour créer un tracé QuadMesh à l'aide de la bibliothèque Matplotlib. Nous avons appris à gérer les données masquées dans le tracé et à personnaliser la palette de couleurs pour la région masquée. Le tracé QuadMesh est un outil puissant pour visualiser des données 2D et est particulièrement utile pour les applications scientifiques.