Introducción
Matplotlib es una biblioteca de visualización de datos para Python. Proporciona una variedad de herramientas para crear visualizaciones estáticas, animadas e interactivas en Python. En este laboratorio, aprenderemos a usar las funciones pcolormesh y pcolor en Matplotlib para visualizar grillas bidimensionales.
Consejos sobre la VM
Una vez que se haya iniciado 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.
Importar las bibliotecas necesarias
Primero, debemos importar las bibliotecas necesarias, Matplotlib y NumPy, ejecutando el siguiente bloque de código:
import matplotlib.pyplot as plt
import numpy as np
Crear datos para la visualización
A continuación, crearemos una grilla bidimensional que usaremos para la visualización. Podemos crear una grilla usando la función meshgrid en NumPy. La función meshgrid crea una grilla de puntos a partir de dos vectores, x e y, que representan las coordenadas de los puntos de la grilla. Crearemos una grilla de 5x5 puntos usando el siguiente bloque de código:
nrows = 5
ncols = 5
x = np.arange(ncols + 1)
y = np.arange(nrows + 1)
X, Y = np.meshgrid(x, y)
Z = X + Y
Sombreado plano
La función pcolormesh en Matplotlib puede visualizar grillas bidimensionales. La especificación de la grilla con los menos supuestos es shading='flat' y si la grilla es una unidad más grande que los datos en cada dimensión, es decir, tiene forma (M+1, N+1). En ese caso, X e Y especifican las esquinas de los cuadriláteros que se colorean con los valores en Z. Podemos visualizar la grilla usando el siguiente bloque de código:
fig, ax = plt.subplots()
ax.pcolormesh(X, Y, Z, shading='flat', cmap='viridis')
ax.set_title('Flat Shading')
plt.show()
Sombreado plano, grilla de la misma forma
Si la grilla tiene la misma forma que los datos en cada dimensión, no podemos usar shading='flat'. Históricamente, Matplotlib eliminaba silenciosamente la última fila y columna de Z en este caso, para coincidir con el comportamiento de Matlab. Si todavía se desea este comportamiento, simplemente elimine manualmente la última fila y columna. Podemos visualizar la grilla usando el siguiente bloque de código:
fig, ax = plt.subplots()
ax.pcolormesh(x, y, Z[:-1, :-1], shading='flat', cmap='viridis')
ax.set_title('Flat Shading, Same Shape Grid')
plt.show()
Sombreado más cercano, grilla de la misma forma
Por lo general, eliminar una fila y una columna de datos no es lo que el usuario quiere decir cuando hace que X, Y y Z tengan todas la misma forma. Para este caso, Matplotlib permite shading='nearest' y centra los cuadriláteros coloreados en los puntos de la grilla. Si se pasa una grilla que no tiene la forma correcta con shading='nearest', se produce un error. Podemos visualizar la grilla usando el siguiente bloque de código:
fig, ax = plt.subplots()
ax.pcolormesh(X, Y, Z, shading='nearest', cmap='viridis')
ax.set_title('Nearest Shading, Same Shape Grid')
plt.show()
Sombreado automático
Es posible que el usuario desee que el código elija automáticamente cuál usar. En este caso, shading='auto' decidirá si usar el sombreado flat o nearest en función de las formas de X, Y y Z. Podemos visualizar la grilla usando el siguiente bloque de código:
fig, ax = plt.subplots()
ax.pcolormesh(x, y, Z, shading='auto', cmap='viridis')
ax.set_title('Auto Shading')
plt.show()
Sombreado Gouraud
También se puede especificar el sombreado Gouraud, donde el color en los cuadriláteros se interpola linealmente entre los puntos de la grilla. Las formas de X, Y y Z deben ser las mismas. Podemos visualizar la grilla usando el siguiente bloque de código:
fig, ax = plt.subplots()
ax.pcolormesh(X, Y, Z, shading='gouraud', cmap='viridis')
ax.set_title('Gouraud Shading')
plt.show()
Resumen
En este laboratorio, aprendimos cómo usar las funciones pcolormesh y pcolor en Matplotlib para visualizar grillas bidimensionales. Aprendimos sobre diferentes opciones de sombreado, incluyendo flat, nearest, auto y gouraud. También aprendimos cómo crear una grilla bidimensional usando la función meshgrid en NumPy.