HOWTO · Matplotlib

Traccia una mappa termica 2D con Matplotlib

Possiamo tracciare una mappa termica 2D usando la funzione imshow(), la libreria seaborn e la funzione pcolormesh().

Per tracciare una mappa termica 2D, possiamo utilizzare uno dei seguenti metodi:

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

Funzione imshow() per tracciare una mappa termica 2D

La sintassi per possiamo usare la funzione 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)

Codici di esempio:

import numpy as np
import matplotlib.pyplot as plt

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

Istogramma 2D con funzione imshow

cmap è la mappa dei colori e possiamo scegliere anche un’altra colormaps incorporata da qui.

interpolation è il metodo di interpolazione che potrebbe essere nearest, bilinear, hamming, ecc.

Heatmap 2D con la libreria Seaborn

La libreria Seaborn è costruita sopra Matplotlib. Potremmo usare la funzione seaborn.heatmap() per creare una mappa termica 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()

Istogramma 2D con seaborn

Seaborn traccia anche un gradiente a lato della heatmap.

Funzione pcolormesh()

Un altro modo per tracciare una mappa termica 2D è usare la funzione pcolormesh(), che crea un grafico a pseudo-colori con una griglia rettangolare non regolare. È un’alternativa più veloce alla funzione pcolor().

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

Produzione:

Istogramma 2D con funzione pcolormesh