Introducción
En este tutorial, aprenderemos cómo crear etiquetas de contorno en Matplotlib. Las etiquetas de contorno se utilizan para etiquetar los contornos en un gráfico de contorno. Este tutorial cubrirá algunas técnicas avanzadas para crear etiquetas de contorno personalizadas.
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.
Definimos nuestra superficie
Comenzaremos definiendo nuestra superficie utilizando numpy y matplotlib. Esto nos dará un conjunto de datos con el que trabajar.
import matplotlib.pyplot as plt
import numpy as np
delta = 0.025
x = np.arange(-3.0, 3.0, delta)
y = np.arange(-2.0, 2.0, 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
Crea etiquetas de contorno con formatters de nivel personalizados
Ahora crearemos etiquetas de contorno con formatters de nivel personalizados. Esto nos permitirá formatear las etiquetas de una manera específica. En este caso, eliminaremos los ceros finales y agregaremos un signo de porcentaje.
def fmt(x):
s = f"{x:.1f}"
if s.endswith("0"):
s = f"{x:.0f}"
return rf"{s} \%" if plt.rcParams["text.usetex"] else f"{s} %"
fig, ax = plt.subplots()
CS = ax.contour(X, Y, Z)
ax.clabel(CS, CS.levels, inline=True, fmt=fmt, fontsize=10)
Etiqueta los contornos con cadenas arbitrarias usando un diccionario
También podemos etiquetar los contornos con cadenas arbitrarias usando un diccionario. Esto nos permitirá etiquetar los contornos con etiquetas personalizadas. En este ejemplo, usaremos una lista de cadenas para etiquetar los contornos.
fig1, ax1 = plt.subplots()
CS1 = ax1.contour(X, Y, Z)
fmt = {}
strs = ['first','second', 'third', 'fourth', 'fifth','sixth','seventh']
for l, s in zip(CS1.levels, strs):
fmt[l] = s
ax1.clabel(CS1, CS1.levels[::2], inline=True, fmt=fmt, fontsize=10)
Utiliza un Formateador
También podemos utilizar un formateador para formatear las etiquetas de contorno. Esto nos permitirá formatear las etiquetas de una manera específica. En este ejemplo, usaremos un LogFormatterMathtext para formatear las etiquetas.
fig2, ax2 = plt.subplots()
CS2 = ax2.contour(X, Y, 100**Z, locator=plt.LogLocator())
fmt = ticker.LogFormatterMathtext()
fmt.create_dummy_axis()
ax2.clabel(CS2, CS2.levels, fmt=fmt)
ax2.set_title("$100^Z$")
plt.show()
Resumen
En este tutorial, aprendimos cómo crear etiquetas de contorno en Matplotlib. Cubrimos algunas técnicas avanzadas para crear etiquetas de contorno personalizadas, incluyendo formatters de nivel personalizados, etiquetar contornos con cadenas arbitrarias y usar un formateador para formatear las etiquetas de contorno. Estas técnicas pueden ser útiles para crear visualizaciones que sean informativas y estéticamente atractivas.