Gráficos de contorno con máscara en 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

En la visualización de datos, los diagramas de contorno se utilizan comúnmente para mostrar datos tridimensionales en un plano bidimensional. Matplotlib es una biblioteca de trazado ampliamente utilizada en Python que proporciona funcionalidades para crear diferentes tipos de trazados, incluyendo diagramas de contorno. En este laboratorio, aprenderemos cómo crear diagramas de contorno con máscara utilizando Matplotlib y cómo ilustrar la diferencia entre la activación y la desactivación de las máscaras de esquina.

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.

Importando las bibliotecas necesarias

Para crear diagramas de contorno con máscara utilizando Matplotlib, necesitamos importar las siguientes bibliotecas:

  • numpy: una biblioteca para el lenguaje de programación Python que proporciona soporte para matrices y arreglos multidimensionales de gran tamaño.
  • matplotlib.pyplot: una colección de funciones que proporcionan una interfaz simple para crear diferentes tipos de trazados.
import matplotlib.pyplot as plt
import numpy as np

Creando datos para el trazado

En este paso, crearemos datos para trazar en un diagrama de contorno. Utilizamos la función np.meshgrid() para crear una cuadrícula de puntos y luego calculamos los valores de z utilizando las funciones seno y coseno.

## Data to plot.
x, y = np.meshgrid(np.arange(7), np.arange(10))
z = np.sin(0.5 * x) * np.cos(0.52 * y)

Mascareando los datos

En este paso, mascarearemos algunos de los valores de z utilizando una máscara booleana. Creamos una matriz mask utilizando la función np.zeros_like() y luego establecemos algunos de los valores en True para mascarearlos.

## Mask various z values.
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)

Creando el trazado

En este paso, crearemos el diagrama de contorno con máscara utilizando la función contourf(). Le pasamos las matrices x, y y z a esta función, junto con el argumento corner_mask establecido en True o False según el tipo de trazado que queramos crear.

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=}')

    ## Plot grid.
    ax.grid(c='k', ls='-', alpha=0.3)

    ## Indicate masked points with red circles.
    ax.plot(np.ma.array(x, mask=~mask), y, 'ro')

plt.show()

Interpretación de los resultados

En este paso, interpretaremos los resultados del diagrama de contorno con máscara. Podemos observar que el parámetro corner_mask controla si los puntos de las esquinas del trazado están mascareados o no. Cuando corner_mask se establece en True, las esquinas del diagrama de contorno se mascarean, mientras que cuando se establece en False, no se mascarean. También podemos ver que los puntos mascareados se indican con círculos rojos.

Resumen

En este laboratorio, aprendimos cómo crear diagramas de contorno con máscara utilizando Matplotlib. Primero importamos las bibliotecas necesarias y luego creamos los datos para el trazado. Luego mascareamos algunos de los valores de z utilizando una máscara booleana y creamos el diagrama de contorno utilizando la función contourf(). Finalmente, interpretamos los resultados y observamos la diferencia entre tener las máscaras de esquinas habilitadas y deshabilitadas.