Cómo trazar un mapa de calor 2D con Matplotlib

  1. Función imshow() para trazar el mapa de calor 2D
  2. Mapa de calor 2D con la biblioteca Seaborn
  3. Función pcolormesh()

Para trazar un mapa de calor 2D, podemos usar cualquiera de los siguientes métodos:

  • imshow() function with parameters interpolation='nearest' and cmap='hot'
  • Biblioteca Seaborn
  • Función pcolormesh()

Función imshow() para trazar el mapa de calor 2D

Sintaxis para que podamos usar la función 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 ejemplo:


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 con función imshow

cmap es un mapa de color y también podemos elegir otro colormaps integrado desde aquí.

interpolation es el método de interpolación que podría ser nearest, bilinear, hamming, etc.

Mapa de calor 2D con la biblioteca Seaborn

La biblioteca Seaborn está construida sobre Matplotlib. Podríamos usar la función seaborn.heatmap() para crear un mapa de calor 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 con nacidos en el mar

Seaborn también traza un gradiente al lado del heatmap.

Función pcolormesh()

Otra forma de trazar un mapa de calor 2D es usar la función pcolormesh(), que crea un diagrama de pseudo-color con una cuadrícula rectangular no regular. Es una alternativa más rápida a pcolor() función.

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()

Producción:

Histograma 2D con función pcolormesh