Mappe di calore e colorbar in matplotlib

Mappe di calore e colorbar in matplotlib
La visualizzazione dei dati è uno dei passi più cruciali nella scienza dei dati (o in qualsiasi altra scienza, per quella materia). Noi, come umani, siamo poveri nel dare un senso a file e file di numeri. Ecco perché è sempre utile avere un'utilità come Matplotlib per aiutarci a sviluppare un'intuizione visiva di ciò che sta accadendo quando, diciamo, un algoritmo di apprendimento automatico sta classificando enormi quantità di dati.

Mentre i grafici che mostrano la relazione tra due variabili come l'altezza e il peso possono essere facilmente tracciati su uno schermo piatto come mostrato di seguito, le cose diventano davvero disordinate quando abbiamo più di due parametri.

Questo è quando le persone cercano di passare a trame 3D, ma questi sono spesso confusi e goffi che sconfiggono l'intero scopo della visualizzazione dei dati. Abbiamo bisogno di mappe di calore per la grafica.

Cosa sono le mappe di calore?

Se guardi l'immagine da una fotocamera termica puoi vedere una mappa di calore letterale. La telecamera di imaging termico rappresenta una temperatura diversa come colori diversi. Lo schema da colorare fa appello alla nostra intuizione che il rosso è un "colore caldo" e prende il blu e il nero per rappresentare le superfici fredde.

Questa visione di Marte è davvero un buon esempio in cui le regioni fredde sono di colore blu mentre le regioni più calde in gran parte rosse e gialle. Il colorbar nell'immagine mostra che colore rappresenta quale temperatura.

Usando matplotlib possiamo associare a un punto (x, y) sul grafico a un colore specifico che rappresenta la variabile che stiamo cercando di visualizzare. Non deve essere temperatura, potrebbe essere qualsiasi altra variabile. Mostreremo anche a Colorbar accanto ad esso per indicare agli utenti cosa significano colori diversi.

Spesso vedresti persone che menzionano Colormaps invece di Mappe di calore. Questi sono spesso usati in modo intercambiabile. Colormap è un termine più generico.

Installazione e importazione di matplotlib e pacchetti correlati

Per iniziare con Matplotlib assicurati di avere Python (preferibilmente Python 3 e Pip). Avrai anche bisogno numpy, Scipy E panda per lavorare con set di dati. Dal momento che tracciamo una funzione semplice, solo due dei pacchetti numpy E matplotlib saranno necessari.

$ pip Installa matplotlib numpy
#or Se hai sia Python due che tre installati
$ PIP3 Installa matplotlib numpy

Una volta installate le librerie, devi assicurarti che siano importate nel tuo programma Python.

Importa Numpy come NP
Importa matplotlib.Pyplot come Plt

Ora puoi utilizzare le funzioni fornite da queste librerie utilizzando la sintassi come np.numpyfunction ()E Plt.someOtherfunction ().

Alcuni esempi

Cominciamo con la pianificazione di una semplice funzione matematica che prende punti su un piano (le loro coordinate X e Y) e assegna loro un valore. Lo screenshot seguente mostra la funzione insieme alla trama.

I diversi colori rappresentano valori diversi (come indicato dalla scala accanto alla trama). Diamo un'occhiata al codice che può essere utilizzato per generare questo.

Importa Numpy come NP
Importa matplotlib.Pyplot come Plt
# Funzione matematica dobbiamo tracciare
def z_func (x, y):
return (1 - (x ** 2 + y ** 3)) * np.exp (-(x ** 2 + y ** 2) / 2)
# Impostazione dei valori di input
x = np.Arange (-3.0, 3.0, 0.1)
y = np.Arange (-3.0, 3.0, 0.1)
X, y = np.meshgrid (x, y)
# Calcolo dell'uscita e memorizzandolo nell'array z
Z = z_func (x, y)
im = plt.imshow (z, cmap = plt.cm.RDBU, Extent = ( -3, 3, 3, -3),
interpolazione = 'bilinear')
Plt.Colorbar (IM)
Plt.Titolo ('$ z = (1-x^2+y^3) e^-(x^2+y^2)/2 $')
Plt.spettacolo()

La prima cosa da notare è che importa solo matplotlib.Pyplot una piccola parte dell'intera libreria. Poiché il progetto è piuttosto vecchio, ha un sacco di cose accumulate nel corso degli anni. Ad esempio, matplotlib.Pyplot era popolare in passato, ma ora è solo una reliquia storica e importarla aggiunge solo più gonfiore al tuo programma.

Successivamente definiamo la funzione matematica che desideriamo tracciare. Ci vogliono due valori (x, y) e restituisce il terzo valore z. Abbiamo definito la funzione non ancora usata.

La sezione successiva assume il compito di creare una matrice di valori di input, usiamo Numpy per questo, sebbene sia possibile utilizzare il build in allineare() Funziona per questo se vuoi. Una volta preparato l'elenco dei valori X e Y (che vanno da 3 a 3 negativi) calcoliamo il valore z da esso.

Ora che abbiamo calcolato i nostri input e output, possiamo tracciare i risultati. IL Plt.imshow () dice a Python che l'immagine si occuperà di z che è la nostra variabile di output. Dice anche che sarà un Coloormap, un cmap, con blu rosso (Rdbu) Scala che si estende da -3 a 3 su entrambi gli assi. IL interpolazione Il parametro rende il grafico più fluido, artificialmente. Altrimenti, la tua immagine sembrerebbe piuttosto pixelata e grossolana.

A questo punto, il grafico viene creato, semplicemente non stampato. Aggiungiamo quindi il colorbar sul lato per aiutare a correlare diversi valori di z con colori diversi e menzionare l'equazione nel titolo. Questi sono fatti nei passaggi Plt.Colorbar (IM) E Plt.Titolo (…). Infine, chiamare la funzione ci mostra il grafico sullo schermo.

Riusabilità

È possibile utilizzare la struttura sopra per tracciare qualsiasi altro Colormap 2D. Non devi nemmeno attenersi alle funzioni matematiche. Se hai enormi matrici di dati nel tuo file system, forse informazioni su un determinato dati demografici o su qualsiasi altro dato statistico è possibile collegarli modificando il X, y Valori senza alterare la sezione ColoRmap.

Spero che tu abbia trovato questo articolo utile e se ti piacciono contenuti simili, facci sapere.