Como traçar um Heatmap 2D com Matplotlib

Suraj Joshi 15 fevereiro 2024
  1. imshow() Função de traçar o mapa térmico 2D
  2. Mapa térmico 2D com a biblioteca Seaborn
  3. pcolormesh() Função
Como traçar um Heatmap 2D com Matplotlib

Para traçar um mapa de aquecimento 2D, podemos usar qualquer um dos seguintes métodos:

  • imshow() function with parameters interpolation='nearest' and cmap='hot'
  • Biblioteca Seaborn
  • pcolormesh() função

imshow() Função de traçar o mapa térmico 2D

Sintaxe para que possamos utilizar a função imshow:

matplotlib.pyplot.imshow(X,
                         cmap=None,
                         norm=None,
                         aspect=None,
                         interpolation=None,
                         alpha=None,
                         vmin=None,
                         vmax=None,
                         origin=None,
                         extent=None,
                         shape= < deprecated parameter > ,
                         filternorm=1,
                         filterrad=4.0,
                         imlim= < deprecated parameter > ,
                         resample=None,
                         url=None,
                         *,
                         data=None,
                         **kwargs)

Códigos de exemplo:

import numpy as np
import matplotlib.pyplot as plt

data = np.random.random((8, 8))
plt.imshow(data, cmap="cool", interpolation="nearest")
plt.show()

histograma 2D com a função imshow

O cmap é um mapa colorido e podemos escolher outro colormaps embutido também de aqui.

A interpolation é o método de interpolação que poderia ser nearest, bilinear, hamming, etc.

Mapa térmico 2D com a biblioteca Seaborn

A biblioteca Seaborn é construída em cima da Matplotlib. Poderíamos utilizar função seaborn.heatmap() para criar o heatmap 2D.

import numpy as np
import seaborn as sns
import matplotlib.pylab as plt

data = np.random.rand(8, 8)
ax = sns.heatmap(data, linewidth=0.3)
plt.show()

Histograma 2D com o navegador

Seaborn também traça um gradiente ao lado do heatmap.

pcolormesh() Função

Outra maneira de traçar o mapa térmico 2D é utilizando a função pcolormesh(), que cria um gráfico pseudo-colorido com uma grade retangular não-regular. É uma alternativa mais rápida à pcolor() função.

import numpy as np
import matplotlib.pyplot as plt

b, a = np.meshgrid(np.linspace(0, 5, 130), np.linspace(0, 5, 130))

c = (a ** 2 + b ** 2) * np.exp(-(a ** 2) - b ** 2)
c = c[:-1, :-1]
l_a = a.min()
r_a = a.max()
l_b = b.min()
r_b = b.max()
l_c, r_c = -np.abs(c).max(), np.abs(c).max()

figure, axes = plt.subplots()

c = axes.pcolormesh(a, b, c, cmap="copper", vmin=l_c, vmax=r_c)
axes.set_title("Heatmap")
axes.axis([l_a, r_a, l_b, r_b])
figure.colorbar(c)

plt.show()

Resultado:

histograma 2D com a função pcolormesh

Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn