Pitone

Mappe di calore e barre dei colori in Matplotlib

Mappe di calore e barre dei colori in Matplotlib
La visualizzazione dei dati è uno dei passaggi più cruciali nella scienza dei dati (o in qualsiasi altra scienza, se è per questo). Noi, come esseri umani, siamo poveri nel dare un senso a righe e righe di numeri. Ecco perché è sempre utile avere un'utilità come Matplotlib per aiutarci a sviluppare un'intuizione visiva di cosa sta succedendo quando, ad esempio, un algoritmo di apprendimento automatico sta classificando enormi quantità di dati.

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

Questo è quando le persone cercano di passare ai grafici 3D, ma questi sono spesso confusi e goffi che vanificano l'intero scopo della visualizzazione dei dati. Abbiamo bisogno di mappe di calore per le immagini.

Cosa sono le mappe di calore??

Se guardi l'immagine di una termocamera puoi vedere una mappa di calore letterale. La termocamera rappresenta temperature diverse come colori diversi. Lo schema di colori fa appello alla nostra intuizione che il rosso è un "colore caldo" e prende il blu e il nero per rappresentare le superfici fredde.

Questa vista di Marte è un ottimo esempio in cui le regioni fredde sono di colore blu mentre le regioni più calde sono in gran parte rosse e gialle. La barra dei colori nell'immagine mostra quale colore rappresenta quale temperatura.

Utilizzando matplotlib possiamo associare un punto (x,y) sul grafico con un colore specifico che rappresenta la variabile che stiamo cercando di visualizzare. Non è necessario che sia la temperatura, potrebbe essere qualsiasi altra variabile. Mostreremo anche un barra dei colori accanto per indicare agli utenti cosa significano i diversi colori.

Spesso vedresti persone che menzionano mappe di colori 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) installato. Avrai anche bisogno insensibile, scipy e panda lavorare con i set di dati. Dato che disegneremo una semplice funzione, solo due dei pacchetti insensibile e matplotlib saranno necessari.

$ pip installa matplotlib numpy
#oppure se hai installato sia Python due che tre
$ pip3 installa matplotlib numpy

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

importa numpy come np
import matplotlib.pyplot come plt

Ora puoi usare le funzioni fornite da queste librerie usando una sintassi come np.numpyfunction()per favore.qualche altra funzione().

Alcuni esempi

Iniziamo con il tracciare una semplice funzione matematica che prende punti su un piano (le loro coordinate x e y) e assegna loro un valore. Lo screenshot qui sotto mostra la funzione insieme alla trama.

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

importa numpy come np
import matplotlib.pyplot come plt
 
# Funzione matematica che dobbiamo tracciare
def z_func(x, y):
ritorno (1 - (x ** 2 + y ** 3)) * np.esp(-(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'output e memorizzazione nell'array Z
Z = z_func(X, Y)
 
im = plt.imshow(Z, cmap=plt.cm.RdBu, estensione=(-3, 3, 3, -3), interpolazione='bilineare')
 
per favore.barra dei colori(im);
 
per favore.title('$z=(1-x^2+y^3) e^-(x^2+y^2)/2$')
 
per favore.mostrare()

La prima cosa da notare è che importiamo solo matplotlib.pyplot una piccola porzione dell'intera libreria. Dato che il progetto è piuttosto vecchio, ha accumulato molte cose nel corso degli anni. Ad esempio, matplotlib.pyplot era popolare ai tempi ma ora è solo una reliquia storica e l'importazione aggiunge solo più ingombro al tuo programma.

Quindi definiamo la funzione matematica che vogliamo tracciare. Prende due valori (x,y) e restituisce il terzo valore z. Abbiamo definito la funzione non l'abbiamo ancora usata.

La prossima sezione assume il compito di creare un array di valori di input, usiamo numpy per questo sebbene tu possa usare il build in gamma() funzione per questo se ti piace. Una volta preparata la lista dei valori x e y (che va da 3 a 3), calcoliamo da essa il valore di z.

Ora che abbiamo calcolato i nostri input e output, possiamo tracciare i risultati. Il per favore.imshow() dice a Python che l'immagine riguarderà Z che è la nostra variabile di output. Dice anche che sarà una mappa dei colori, un cmap, con Rosso Blu (RdBu) scala che si estende da -3 a 3 su entrambi gli assi. Il interpolazione parametro rende il grafico più fluido, artificialmente. Altrimenti, la tua immagine sembrerebbe piuttosto pixelata e grossolana.

A questo punto viene creato il grafico, ma non stampato. Quindi aggiungiamo la barra dei colori sul lato per aiutare a mettere in correlazione diversi valori di Z con colori diversi e menzioniamo l'equazione nel titolo. Questi sono fatti in passaggi per favore.barra dei colori(im) e per favore.titolo(…). Infine, chiamando la funzione ci viene mostrato il grafico sullo schermo.

Riutilizzabilità

Puoi usare la struttura sopra per tracciare qualsiasi altra mappa di colori 2D. Non devi nemmeno attenerti alle funzioni matematiche. Se disponi di enormi matrici di dati nel tuo file system, forse informazioni su determinati dati demografici o altri dati statistici, puoi collegarli modificando il X, Y valori senza alterare la sezione colormap color.

Spero che questo articolo ti sia stato utile e se ti piacciono contenuti simili, faccelo sapere.

Come installare League Of Legends su Ubuntu 14.04
Se sei un fan di League of Legends, questa è un'opportunità per testare League of Legends. Nota che LOL è supportato su PlayOnLinux se sei un utente L...
Installa l'ultimo gioco di strategia OpenRA su Ubuntu Linux
OpenRA è un motore di gioco di strategia in tempo reale gratuito/libero che ricrea i primi giochi di Westwood come il classico Command & Conquer: Red ...
Installa l'ultimo Dolphin Emulator per Gamecube e Wii su Linux
L'emulatore Dolphin ti consente di giocare ai giochi Gamecube e Wii scelti su Personal Computer Linux (PC). Essendo un emulatore di giochi liberament...