Vizualizarea datelor este esențială pentru a le înțelege și a obține informații utile care să ne ghideze acțiunile. O reprezentare grafică bine realizată permite observatorului să înțeleagă esența datelor dintr-o singură privire.
Una dintre cele mai populare metode de vizualizare a datelor este harta termică. În acest articol, voi explica ce este o hartă termică și cum se poate crea una în Python folosind bibliotecile Matplotlib, Seaborn și Plotly.
Ce reprezintă o hartă termică?
Sursa: seaborn.pydata.org
O hartă termică este o reprezentare grafică bidimensională a datelor, sub forma unei matrice sau a unei grile de puncte. Fiecare punct de date este reprezentat printr-o nuanță specifică dintr-o paletă de culori. Nuanțele mai închise indică valori mai mari, în timp ce nuanțele mai deschise corespund valorilor mai mici.
Hărțile termice ajută la identificarea rapidă a modelelor, tendințelor și variațiilor din date. Ele oferă o imagine concisă, permițând utilizatorilor să observe ușor zonele cu valori ridicate sau scăzute, aglomerările de date și valorile atipice.
Unde se folosesc hărțile termice?
Hărțile termice sunt instrumente utile pentru a ilustra modul în care valorile fluctuează în spațiu. Iată câteva aplicații practice:
Prognoza meteo
Cel mai frecvent exemplu de hartă termică este reprezentarea grafică a variațiilor de temperatură în diferite locații.
De exemplu, o prognoză meteo de la Daily Express arată temperaturile prognozate sub formă de hartă termică. Astfel, devine mai ușor de vizualizat care zone vor fi calde, reci sau cu temperaturi intermediare.
Analiza utilizării site-urilor web/aplicațiilor
Sursa: HotJar
Prin urmărirea mișcărilor mouse-ului, a clicurilor și a modului de scroll, hărțile termice ajută la identificarea zonelor populare sau neglijate ale unei pagini web. Aceste informații sunt apoi folosite pentru a optimiza interfețele utilizator și a îmbunătăți experiența acestora.
Imagistica medicală
Sursa: researchgate.net
Hărțile termice vizualizează zonele cu activitate ridicată sau scăzută din corp. Această metodă ajută la identificarea anomaliilor și bolilor, precum și la evaluarea progresului sau răspunsului la tratament în afecțiuni precum cancerul.
Biblioteci pentru generarea hărților termice în Python
Python este un limbaj de programare popular pentru analiza și vizualizarea datelor, datorită sintaxei sale simple și a ecosistemului său bogat. Există mai multe biblioteci pe care le puteți folosi pentru a crea hărți termice în Python. Acestea includ:
- Matplotlib – O bibliotecă consacrată pentru vizualizarea datelor. Este o bibliotecă de nivel inferior, care oferă numeroase opțiuni de personalizare, dar este mai complexă.
- Seaborn – Această bibliotecă de vizualizare este construită pe baza Matplotlib și simplifică unele dintre funcțiile sale, oferind în același timp grafice mai atractive.
- Plotly – Aceasta este o bibliotecă de vizualizare care oferă un API ușor de utilizat pentru a crea hărți termice în Python.
În continuare, vom vedea cum să creăm hărți termice folosind toate aceste biblioteci.
Cum se generează o hartă termică?
În această secțiune, voi explica cum să creăm hărți termice folosind Matplotlib, Seaborn și Plotly. Pentru a scrie codul, voi folosi Google Colab. Aceasta este o platformă gratuită care oferă un mediu Python bazat pe notebook, folosind infrastructura Google pentru a rula codul. Nu necesită configurare, așa că o puteți folosi și dumneavoastră pentru a urmări exemplele. Vom începe cu Matplotlib.
Matplotlib
Pentru început, vom importa biblioteca Matplotlib.
import matplotlib.pyplot as plt
Vom avea nevoie și de NumPy pentru a genera un set de date aleatoriu.
import numpy as np
Pentru a genera setul de date, vom adăuga următorul cod:
# Creăm o seed pentru reproducibilitate np.random.seed(2) # Generăm o matrice 10 x 10 de numere întregi între 1 și 50 data = np.random.randint(low = 1, high = 50, size = (10, 10))
Pentru a afișa grafic datele, folosim metoda imshow. Transmitem datele ca argument. Putem adăuga mai multe opțiuni prin transmiterea unor argumente suplimentare, pe care le vom aborda mai târziu.
plt.imshow(data)
Dacă executați celula, ar trebui să vedeți o hartă termică.

Deși acest rezultat este bun, există numeroase opțiuni de personalizare disponibile. De exemplu, puteți schimba culorile folosite în imagine folosind argumentul cmap, pe care îl transmiteți funcției imshow. Dacă doriți să schimbați culorile hărții termice în diferite nuanțe de albastru, veți genera graficul cu următoarele:
plt.imshow(data, cmap = 'Blues')
Lista completă a opțiunilor cmap se găsește Aici. Oricum, rezultatul codului de mai sus va fi:

O hartă termică este mai utilă dacă are o legendă care să explice ce reprezintă culorile. Pentru a adăuga legenda, folosiți următorul cod:
plt.colorbar()
După aceasta, ar trebui să obțineți un grafic similar cu următorul:

O bară de culoare este utilă, dar, în unele cazuri, s-ar putea dori adnotarea diferitelor valori, astfel încât cel care vizualizează datele să vadă exact ce reprezintă. Pentru a face acest lucru, veți scrie text în fiecare celulă folosind plt.text().
for i in range(data.shape[0]):
for j in range(data.shape[1]):
plt.text(j, i, '%d' % data[i, j],
horizontalalignment="center",
verticalalignment="center",
)

Ultimul lucru pe care îl vom face cu harta termică este să setăm etichetele pe axe. Vom folosi funcția plt.xticks pentru axa x și funcția plt.yticks pentru axa y. Aceste metode sunt apelate în același mod; singura diferență este axa pe care o afectează fiecare metodă.
Primul argument este lista de locuri unde se vor introduce etichetele. Acesta este reprezentat ca o serie de indici. Al doilea argument este lista cu etichetele propriu-zise care vor fi inserate. Iată un exemplu despre cum am putea insera etichete:
x_labels = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'] y_labels = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'] plt.xticks(np.arange(len(x_labels)), labels=x_labels) plt.yticks(np.arange(len(y_labels)), labels=y_labels)

Și gata! Așa se creează o hartă termică în Matplotlib. Soluția completă a codului este prezentată mai jos.
import numpy as np
import matplotlib.pyplot as plt
# Creăm o seed pentru reproducibilitate
np.random.seed(2)
# Generăm o matrice 10 x 10 de numere întregi între 1 și 50
data = np.random.randint(low = 1, high = 50, size = (10, 10))
# Creăm o reprezentare grafică cu albastru ca și culoare
plt.imshow(data, cmap = 'Blues')
# Afișăm o bară de culoare
plt.colorbar()
# Adnotăm valorile
for i in range(data.shape[0]):
for j in range(data.shape[1]):
plt.text(j, i, '%d' % data[i, j],
horizontalalignment="center",
verticalalignment="center",
)
# Creăm liste cu etichete
x_labels = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']
y_labels = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
# Adăugăm etichetele
plt.xticks(np.arange(len(x_labels)), labels=x_labels)
plt.yticks(np.arange(len(y_labels)), labels=y_labels)
Cu toate acestea, utilizarea Matplotlib nu este cea mai simplă soluție. După cum vom vedea în continuare, alte biblioteci precum Seaborn și Plotly simplifică procesul de construire a unei hărți termice.
Seaborn
În această secțiune, vom recrea exemplul anterior folosind Seaborn. Seaborn este o bibliotecă bazată pe Matplotlib. Oferă o abstractizare mai simplă, mai ușor de folosit. Pentru a crea o hartă termică, vom începe prin a importa bibliotecile pe care le vom folosi.
import matplotlib.pyplot as plt import numpy as np import seaborn as sn
Am importat Matplotlib deoarece Seaborn o folosește. Apoi, importăm NumPy pentru a genera un set de date aleatoriu. În cele din urmă, importăm Seaborn.
În continuare, generăm setul de date folosind NumPy.
# Creăm o seed pentru reproducibilitate np.random.seed(2) # Generăm o matrice 10 x 10 de numere întregi între 1 și 50 data = np.random.randint(low = 1, high = 50, size = (10, 10))
După ce facem acest lucru, creăm listele de etichete.
# Etichete x_labels = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'] y_labels = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
Apoi, în cele din urmă, creăm harta termică propriu-zisă, apelând funcția de hartă a modulului sn.
hm = sn.heatmap(data = data, cmap = 'Oranges', annot = True, yticklabels = y_labels, xticklabels = x_labels)
După cum se poate vedea, am transmis mai multe argumente. Iată explicația fiecăruia:
- data este setul de date pe care dorim să îl afișăm
- cmap este paleta de culori pe care dorim să o folosim pentru harta termică
- annot specifică dacă dorim să adnotăm punctele de date cu valoarea lor reală
- yticklabels este lista de etichete pe care le dorim pentru marcajele de pe axa verticală
- xticklabels este lista de etichete pentru marcajele de pe axa orizontală.
În final, afișăm diagrama folosind codul:
plt.show()
Aceasta va genera următoarea hartă termică:

Plotly
În cazul Plotly, procesul este similar cu Seaborn. Iată schița codului pentru a crea o hartă termică în Plotly:
import plotly.express as px import numpy as np # Creăm o seed pentru reproducibilitate np.random.seed(2) # Generăm o matrice 10 x 10 de numere întregi între 1 și 50 data = np.random.randint(low = 1, high = 50, size = (10, 10)) # Etichete x_labels = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'] y_labels = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'] px.imshow(data, text_auto = True, x = x_labels, y = y_labels, color_continuous_scale="greys")
După cum se poate vedea, harta termică este generată în ultima linie folosind funcția px.imshow(). Această funcție primește datele ca argument pozițional. În plus, sunt necesare argumentele numite după cum urmează:
- text_auto este un boolean care activează adnotarea când este setat la adevărat
- x este o listă de etichete pentru marcajele de pe axa x
- y este o listă de etichete pentru marcajele de pe axa y
- color_continuous_scale determină paleta de culori utilizată pentru grafic.
După cum se poate observa, Plotly este mai simplu de utilizat decât Seaborn și Matplotlib. În plus, graficul generat este interactiv, spre deosebire de celelalte biblioteci care produc imagini statice.
Iată o captură de ecran cu rezultatul final:

Concluzie
În acest articol, am discutat despre cum se pot crea hărți termice în Python. Am acoperit principalele biblioteci: Matplotlib, Seaborn și Plotly. Am văzut, de asemenea, cum Seaborn și Plotly oferă o abstracție mai simplă față de Matplotlib. O utilizare importantă a hărților termice este analiza modului în care utilizatorii interacționează cu site-urile web.
Vă recomand să consultați instrumentele de hărți termice care vă arată unde dau click utilizatorii.