Como traçar um Heatmap 2D com Matplotlib

  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

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