Tutorial de trazado de gráficos QuadMesh con Matplotlib

PythonPythonBeginner
Practicar Ahora

This tutorial is from open-source community. Access the source code

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

Este tutorial lo guiará a través del uso de la biblioteca Matplotlib para crear un gráfico QuadMesh. QuadMesh es una generalización más rápida de la función pcolor, pero con algunas restricciones. La demostración en este tutorial ilustrará un error en QuadMesh con datos enmascarados.

Consejos sobre la VM

Una vez finalizada la inicialización de la VM, haga clic en la esquina superior izquierda para cambiar a la pestaña Cuaderno y acceder a Jupyter Notebook para practicar.

A veces, es posible que tenga que esperar unos segundos a que Jupyter Notebook termine de cargarse. La validación de las operaciones no se puede automatizar debido a las limitaciones de Jupyter Notebook.

Si tiene problemas durante el aprendizaje, no dude en preguntar a Labby. Deje sus comentarios después de la sesión y lo resolveremos rápidamente para usted.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python(("Python")) -.-> python/ModulesandPackagesGroup(["Modules and Packages"]) matplotlib(("Matplotlib")) -.-> matplotlib/AdvancedTopicsGroup(["Advanced Topics"]) python(("Python")) -.-> python/DataScienceandMachineLearningGroup(["Data Science and Machine Learning"]) matplotlib(("Matplotlib")) -.-> matplotlib/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) 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{{"Tutorial de trazado de gráficos QuadMesh con Matplotlib"}} python/lists -.-> lab-48892{{"Tutorial de trazado de gráficos QuadMesh con Matplotlib"}} python/tuples -.-> lab-48892{{"Tutorial de trazado de gráficos QuadMesh con Matplotlib"}} python/build_in_functions -.-> lab-48892{{"Tutorial de trazado de gráficos QuadMesh con Matplotlib"}} python/importing_modules -.-> lab-48892{{"Tutorial de trazado de gráficos QuadMesh con Matplotlib"}} python/using_packages -.-> lab-48892{{"Tutorial de trazado de gráficos QuadMesh con Matplotlib"}} matplotlib/matplotlib_config -.-> lab-48892{{"Tutorial de trazado de gráficos QuadMesh con Matplotlib"}} python/numerical_computing -.-> lab-48892{{"Tutorial de trazado de gráficos QuadMesh con Matplotlib"}} python/data_visualization -.-> lab-48892{{"Tutorial de trazado de gráficos QuadMesh con Matplotlib"}} end

Importando las bibliotecas necesarias

import numpy as np
from matplotlib import pyplot as plt

Definiendo los datos

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)

Creando el gráfico

fig, axs = plt.subplots(nrows=1, ncols=3)
axs[0].pcolormesh(Qx, Qz, Z, shading='gouraud')
axs[0].set_title('Sin valores enmascarados')
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('Con valores enmascarados')
axs[2].pcolormesh(Qx, Qz, Zm, shading='gouraud')
axs[2].set_title('Con valores enmascarados')
fig.tight_layout()
plt.show()

Explicación

  • Paso 2: Los datos se definen utilizando matrices de numpy. Las matrices X e Y se utilizan para crear una malla (meshgrid), que se utiliza para calcular los valores de Qx y Qz. A continuación, los valores de Z se calculan en función de los valores de Qx y Qz. La matriz Zm se crea enmascarando los valores donde el valor absoluto de Qz es menor que 0,5 veces el valor máximo de Qz.
  • Paso 3: Se crea una figura con tres subtramas (subplots) utilizando el método subplots. La función pcolormesh se utiliza para crear un gráfico QuadMesh para cada subtrama. La primera subtrama muestra el gráfico sin valores enmascarados. La segunda subtrama muestra el gráfico con valores enmascarados y una paleta de colores personalizada donde la región enmascarada es amarilla. La tercera subtrama muestra el gráfico con valores enmascarados y la paleta de colores predeterminada donde la región enmascarada es transparente.
  • Paso 4: El gráfico QuadMesh es una herramienta útil para visualizar datos bidimensionales. En este tutorial, aprendimos cómo utilizar la función pcolormesh para crear un gráfico QuadMesh y cómo manejar datos enmascarados en el gráfico.

Resumen

Este tutorial proporcionó una guía paso a paso para crear un gráfico QuadMesh utilizando la biblioteca Matplotlib. Aprendimos cómo manejar datos enmascarados en el gráfico y cómo personalizar la paleta de colores para la región enmascarada. El gráfico QuadMesh es una herramienta poderosa para visualizar datos bidimensionales y es particularmente útil para aplicaciones científicas.