Traccia una mappa termica 2D con Matplotlib

Suraj Joshi 15 febbraio 2024
  1. Funzione imshow() per tracciare una mappa termica 2D
  2. Heatmap 2D con la libreria Seaborn
  3. Funzione pcolormesh()
Traccia una mappa termica 2D con Matplotlib

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

Autore: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn