Matplotlib avanzado

Mapas de calor con imshow y mapas de color

Dibuja un mapa de calor de una tabla 2D con ax.imshow, un mapa de color, una barra de color y el valor en cada celda.

Introducción

Un mapa de calor colorea cada celda de una tabla según su valor, así los patrones por filas y columnas saltan a la vista. ax.imshow dibuja un array 2D como celdas de color, el mapa de color (cmap) convierte números en colores y fig.colorbar muestra la escala.

visits es un array de 7 × 6: una fila por día y una columna por franja horaria. imshow dibuja la fila 0 arriba, y set_xticks / set_yticks nombran columnas y filas. El doble bucle escribe cada valor en su celda con ax.text(columna, fila, ...). Los mapas secuenciales como viridis sirven para valores de bajo a alto; los divergentes como coolwarm, para valores por encima y por debajo de un punto medio.

Visualizador interactivo

Prueba otros mapas de color, oculta los números y la barra de color. Un buen mapa de color distingue fácilmente valores altos y bajos.

Ejemplo de Matplotlib ejecutable

Matplotlib
Ejecutar código →
main.py
import matplotlib.pyplot as plt
import numpy as np

days = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"]
hours = ["6am", "9am", "12pm", "3pm", "6pm", "9pm"]
rng = np.random.default_rng(2)
visits = rng.integers(5, 60, size=(len(days), len(hours)))

fig, ax = plt.subplots(figsize=(7, 4))
image = ax.imshow(visits, cmap="viridis")
ax.set_xticks(range(len(hours)), hours)
ax.set_yticks(range(len(days)), days)
for row in range(len(days)):
    for col in range(len(hours)):
        ax.text(col, row, visits[row, col], ha="center", va="center", color="white", fontsize=8)
fig.colorbar(image, label="Visits")
ax.set_title("Website visits by day and hour")
plt.show()
Obtén un botón Run para este ejemplo El gráfico que dibuja este código
Mapas de calor con imshow y mapas de color