Heatmap con imshow e mappe di colore
Disegna la heatmap di una tabella 2D con ax.imshow, una mappa di colore, una barra dei colori e il valore in ogni cella.
Introduzione
Una heatmap colora ogni cella di una tabella in base al suo valore, così gli schemi per righe e colonne saltano all'occhio. ax.imshow disegna un array 2D come celle colorate, la mappa di colore (cmap) trasforma i numeri in colori e fig.colorbar mostra la scala.
visits è un array 7 × 6: una riga per giorno e una colonna per fascia oraria. imshow disegna la riga 0 in alto, e set_xticks / set_yticks danno il nome a colonne e righe. Il doppio ciclo scrive ogni valore nella sua cella con ax.text(colonna, riga, ...). Le mappe sequenziali come viridis vanno bene per valori da bassi ad alti; quelle divergenti come coolwarm per valori sopra e sotto un punto centrale.
Visualizzatore interattivo
Prova altre mappe di colore, nascondi i numeri e la barra dei colori. Una buona mappa distingue facilmente valori alti e bassi.
Esempio Matplotlib eseguibile
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()
