Los mapas de calor son invaluables para visualizar datos en una cuadrícula bidimensional, donde la intensidad del color representa la magnitud de cada valor. Matplotlib, una potente biblioteca de visualización de datos de Python, ofrece varias maneras de crear mapas de calor atractivos. Este artículo explora tres métodos populares: usando imshow()
, aprovechando la biblioteca Seaborn y empleando pcolormesh()
. Cubriremos cada método con ejemplos y explicaciones claras.
Tabla de contenido
imshow()
: Un enfoque simpleheatmap()
de Seaborn: Funcionalidad mejoradapcolormesh()
: Para datos irregulares y control preciso
imshow()
: Un enfoque simple
La función imshow()
de Matplotlib proporciona una manera sencilla de generar mapas de calor. Acepta una matriz 2D como entrada, mapeando valores a colores usando una paleta de colores elegida.
import matplotlib.pyplot as plt
import numpy as np
# Datos de muestra
data = np.random.rand(10, 10)
# Crear el mapa de calor
plt.imshow(data, cmap='viridis')
# Agregar una barra de color
plt.colorbar(label='Valor')
# Agregar etiquetas y título
plt.xlabel('Eje X')
plt.ylabel('Eje Y')
plt.title('Mapa de calor 2D usando imshow()')
# Mostrar la gráfica
plt.show()
Este código crea un mapa de calor donde la intensidad del color de la celda refleja el valor correspondiente en la matriz data
. El argumento cmap
selecciona la paleta de colores (por ejemplo, ‘plasma’, ‘magma’, ‘inferno’, ‘cividis’). colorbar()
agrega una leyenda que mapea los colores a los valores.
heatmap()
de Seaborn: Funcionalidad mejorada
Seaborn, construido sobre Matplotlib, ofrece una interfaz de alto nivel para crear gráficos estadísticamente perspicaces y visualmente atractivos, incluidos los mapas de calor. Su función heatmap()
simplifica el proceso y agrega características útiles.
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
# Datos de muestra
data = np.random.rand(10, 10)
# Crear el mapa de calor
sns.heatmap(data, annot=True, cmap='coolwarm', fmt=".2f")
# Agregar título
plt.title('Mapa de calor 2D usando Seaborn')
# Mostrar la gráfica
plt.show()
Este ejemplo de Seaborn genera un mapa de calor similar, pero con annot=True
que muestra valores numéricos dentro de cada celda, mejorando la legibilidad. fmt
controla el formato de la anotación.
pcolormesh()
: Para datos irregulares y control preciso
pcolormesh()
de Matplotlib es ideal para mapas de calor con datos espaciados irregularmente o cuando se necesita un control preciso sobre los límites de las celdas.
import matplotlib.pyplot as plt
import numpy as np
# Datos de muestra (usando meshgrid para demostración)
x = np.arange(0, 10, 1)
y = np.arange(0, 10, 1)
X, Y = np.meshgrid(x, y)
data = np.sin(X) * np.cos(Y)
# Crear el mapa de calor
plt.pcolormesh(X, Y, data, cmap='RdBu')
# Agregar una barra de color
plt.colorbar(label='Valor')
# Agregar etiquetas y título
plt.xlabel('Eje X')
plt.ylabel('Eje Y')
plt.title('Mapa de calor 2D usando pcolormesh()')
# Mostrar la gráfica
plt.show()
Este ejemplo usa meshgrid
para crear cuadrículas de coordenadas x e y, definiendo los límites de las celdas para pcolormesh()
. Esto ofrece mayor flexibilidad que imshow()
. La paleta de colores RdBu
es un esquema divergente adecuado para datos con valores positivos y negativos. Recuerde instalar las bibliotecas necesarias usando pip install matplotlib seaborn
.