Gráficos de contorno rellenos 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

En este tutorial, aprenderemos cómo crear diagramas de contornos rellenos utilizando el método contourf de la biblioteca Matplotlib. Cubriremos cómo crear contornos rellenos con niveles automáticos y explícitos, y cómo configurar la paleta de colores y la configuración de extensión.

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 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 su retroalimentación después de la sesión y resolveremos el problema para usted de inmediato.

Importar bibliotecas y crear datos

Primero, necesitamos importar las bibliotecas necesarias y crear algunos datos para graficar.

import matplotlib.pyplot as plt
import numpy as np

## Crear datos
origen = 'lower'
delta = 0.025
x = y = np.arange(-3.0, 3.01, delta)
X, Y = np.meshgrid(x, y)
Z1 = np.exp(-X**2 - Y**2)
Z2 = np.exp(-(X - 1)**2 - (Y - 1)**2)
Z = (Z1 - Z2) * 2

Crear contorno relleno con niveles automáticos

A continuación, crearemos un diagrama de contorno relleno con niveles automáticos. Usaremos el método contourf con el parámetro cmap establecido en plt.cm.bone para especificar la paleta de colores. También agregaremos líneas de contorno con el método contour y pasaremos un subconjunto de los niveles de contorno utilizados para los contornos rellenos.

## Crear contorno relleno con niveles automáticos
fig, ax = plt.subplots()
CS = ax.contourf(X, Y, Z, 10, cmap=plt.cm.bone, origin=origin)
CS2 = ax.contour(CS, levels=CS.levels[::2], colors='r', origin=origin)

## Agregar título, etiquetas de eje y barra de colores
ax.set_title('Contorno Relleno con Niveles Automáticos')
ax.set_xlabel('Etiqueta de X')
ax.set_ylabel('Etiqueta de Y')
cbar = fig.colorbar(CS)
cbar.ax.set_ylabel('Etiqueta de Z')
cbar.add_lines(CS2)

## Mostrar el gráfico
plt.show()

Crear contorno relleno con niveles explícitos

Ahora, crearemos un diagrama de contorno relleno con niveles explícitos. Usaremos el método contourf con el parámetro levels establecido en una lista de valores para especificar los niveles de contorno. También estableceremos la paleta de colores en una lista de colores y el parámetro extend en 'both' para mostrar valores fuera del rango de niveles.

## Crear contorno relleno con niveles explícitos
fig, ax = plt.subplots()
niveles = [-1.5, -1, -0.5, 0, 0.5, 1]
CS = ax.contourf(X, Y, Z, niveles, colors=('r', 'g', 'b'),
                 origin=origin, extend='both')
CS2 = ax.contour(X, Y, Z, niveles, colors=('k',),
                 linewidths=(3,), origin=origin)

## Agregar título, etiquetas de eje y barra de colores
ax.set_title('Contorno Relleno con Niveles Explícitos')
ax.set_xlabel('Etiqueta de X')
ax.set_ylabel('Etiqueta de Y')
cbar = fig.colorbar(CS)
cbar.ax.set_ylabel('Etiqueta de Z')

## Mostrar el gráfico
plt.show()

Establecer la paleta de colores y la configuración de extensión

Finalmente, estableceremos la paleta de colores y la configuración de extensión. Usaremos el método with_extremes para establecer los colores para los valores por debajo y por encima del rango de niveles. También crearemos cuatro subgráficos para mostrar los cuatro posibles ajustes de extend: 'neither', 'both', 'min' y 'max'.

## Establecer la paleta de colores y la configuración de extensión
extends = ["neither", "both", "min", "max"]
cmap = plt.colormaps["winter"].with_extremes(under="magenta", over="yellow")

## Crear subgráficos con diferentes configuraciones de extensión
fig, axs = plt.subplots(2, 2, layout="constrained")
for ax, extend in zip(axs.flat, extends):
    cs = ax.contourf(X, Y, Z, levels, cmap=cmap, extend=extend, origin=origin)
    fig.colorbar(cs, ax=ax, shrink=0.9)
    ax.set_title("extend = %s" % extend)
    ax.locator_params(nbins=4)

## Mostrar el gráfico
plt.show()

Resumen

En este tutorial, aprendimos cómo crear diagramas de contorno rellenos utilizando el método contourf en la biblioteca Matplotlib. Cubrimos cómo crear contornos rellenos con niveles automáticos y explícitos, y cómo establecer la paleta de colores y la configuración de extensión. Con estas habilidades, puedes crear diagramas de contorno hermosos e informativos para tus datos.