Matplotlib avançado

Mapas de calor com imshow e mapas de cores

Desenhe um mapa de calor de uma tabela 2D com ax.imshow, um mapa de cores, uma barra de cores e o valor em cada célula.

Introdução

Um mapa de calor colore cada célula de uma tabela pelo seu valor, e os padrões nas linhas e colunas saltam aos olhos. ax.imshow desenha um array 2D como células coloridas, o mapa de cores (cmap) transforma números em cores e fig.colorbar mostra a escala.

visits é um array 7 × 6: uma linha por dia e uma coluna por horário. imshow desenha a linha 0 no topo, e set_xticks / set_yticks dão nome às colunas e linhas. O laço duplo escreve cada valor na sua célula com ax.text(coluna, linha, ...). Mapas sequenciais como viridis servem para valores de baixo para cima; divergentes como coolwarm, para valores acima e abaixo de um meio.

Visualizador interativo

Teste outros mapas de cores, esconda os números e a barra de cores. Um bom mapa de cores separa bem valores altos e baixos.

Exemplo de Matplotlib executável

Matplotlib
Executar 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()
Gerar um botão Run para este exemplo O gráfico que este código desenha
Mapas de calor com imshow e mapas de cores