Piton

Heatmaps i Colorbars u Matplotlibu

Heatmaps i Colorbars u Matplotlibu
Vizualizacija podataka jedan je od najvažnijih koraka u Data Scienceu (ili bilo kojoj drugoj znanosti, po tom pitanju). Mi kao ljudi slabo razumijemo redove i redove brojeva. Zbog toga je uvijek korisno imati uslužni program kao što je Matplotlib koji će nam pomoći razviti vizualnu intuiciju onoga što se događa kada, recimo, algoritam strojnog učenja klasificira ogromne količine podataka.

Iako se grafikoni koji pokazuju vezu između dvije varijable poput visine i težine mogu jednostavno ucrtati na ravni zaslon kao što je prikazano u nastavku, stvari postaju stvarno neuredne kada imamo više od dva parametra.

Tada ljudi pokušavaju prijeći na 3D crteže, ali oni su često zbunjujući i nezgrapni, što poništava cjelokupnu svrhu vizualizacije podataka. Trebamo toplinske karte za vizualne slike.

Što su toplinske karte?

Ako sliku gledate s termalne kamere, možete vidjeti doslovnu toplotnu kartu. Termovizijska kamera predstavlja različitu temperaturu kao različite boje. Shema bojanja privlači našu intuiciju da je crvena "topla boja", a plava i crna boja predstavljaju hladne površine.

Ovaj pogled na Mars zaista je dobar primjer gdje su hladna područja plave boje, dok su toplija uglavnom crvena i žuta. Traka boja na slici pokazuje koja boja predstavlja koju temperaturu.

Koristeći matplotlib možemo povezati točku (x, y) na grafikonu s određenom bojom koja predstavlja varijablu koju pokušavamo vizualizirati. To ne mora biti temperatura, to može biti bilo koja druga varijabla. Također ćemo prikazati a traka u boji pored njega da naznači korisnicima što znače različite boje.

Često biste vidjeli ljude da umjesto toplotnih mapa spominju mape boja. Oni se često koriste naizmjenično. Colormap je općenitiji pojam.

Instaliranje i uvoz Matplotliba i srodnih paketa

Da biste započeli s Matplotlibom, provjerite je li instaliran Python (po mogućnosti Python 3 i pip). Također ćete trebati numpy, scipy i pande za rad sa skupovima podataka. Budući da ćemo ucrtati jednostavnu funkciju, samo dva paketa numpy i matplotlib će biti neophodni.

$ pip instaliraj matplotlib numpy
#ili ako imate instalirana oba i tri pythona
$ pip3 instaliraj matplotlib numpy

Nakon što instalirate knjižnice, morate biti sigurni da su uvezene u vaš python program.

uvoz numpy kao np
uvoz matplotlib.pyplot kao plt

Sada možete koristiti funkcije koje pružaju ove knjižnice koristeći sintaksu poput np.numpyfunction ()plt.neka druga funkcija ().

Nekoliko primjera

Počnimo s crtanjem jednostavne matematičke funkcije koja uzima točke na ravnini (njihove x i y koordinate) i dodjeljuje im vrijednost. Snimak zaslona u nastavku prikazuje funkciju uz radnju.

Različite boje predstavljaju različite vrijednosti (kao što pokazuje ljestvica pored crteža). Pogledajmo kod koji se može koristiti za to generiranje.

uvoz numpy kao np
uvoz matplotlib.pyplot kao plt
 
# Matematička funkcija koju moramo zacrtati
def z_func (x, y):
povratak (1 - (x ** 2 + y ** 3)) * np.exp (- (x ** 2 + y ** 2) / 2)
# Postavljanje ulaznih vrijednosti
x = np.rasporediti (-3.0, 3.0, 0.1)
y = np.rasporediti (-3.0, 3.0, 0.1)
X, Y = np.mrežasta mreža (x, y)
 
# Izračunavanje rezultata i njegovo spremanje u polje Z
Z = z_func (X, Y)
 
im = plt.imshow (Z, cmap = plt.cm.RdBu, opseg = (- 3, 3, 3, -3), interpolacija = 'bilinearna')
 
plt.traka u boji (im);
 
plt.naslov ('$ z = (1-x ^ 2 + y ^ 3) e ^ - (x ^ 2 + y ^ 2) / 2 $')
 
plt.pokazati()

Prvo što treba primijetiti je da uvozimo samo matplotlib.pyplot mali dio cijele knjižnice. Budući da je projekt prilično star, godinama se nakupilo puno stvari. Na primjer, matplotlib.pyplot je bio popularan još u to vrijeme, ali sada je samo povijesni relikt, a uvoz ga samo dodaje više naduvavanja vašem programu.

Dalje definiramo matematičku funkciju koju želimo zacrtati. Potrebne su dvije vrijednosti (x, y) i vraća se treća vrijednost z. Definirali smo funkciju koja je još nije koristila.

Sljedeći odjeljak preuzima zadatak stvaranja niza ulaznih vrijednosti, za to koristimo numpy, iako možete koristiti izgradnju raspon () funkciju za to ako želite. Nakon što se pripremi popis vrijednosti x i y (u rasponu od negativnih 3 do 3), iz njega izračunavamo z vrijednost.

Sad kad smo izračunali svoje ulaze i izlaze, možemo zacrtati rezultate. The plt.imshow () govori pythonu da će se slika baviti Z-om koji je naša izlazna varijabla. Također kaže da će to biti mapa boja, cmap, s crveno plavom (RdBu) Skala koja se proteže od -3 do 3 na bilo kojoj osi. The interpolacija parametar čini graf glatkim, umjetno. Inače bi vaša slika izgledala prilično pikselirano i grubo.

U ovom se trenutku stvara grafikon, samo ne ispisuje. Zatim dodajemo traku boja sa strane da bismo pomogli u korelaciji različitih vrijednosti Z s različitim bojama i spominjemo jednadžbu u naslovu. To se radi u koracima plt.traka u boji (im) i plt.naslov (…). Napokon, pozivanje funkcije prikazuje nam graf na zaslonu.

Višekratna upotreba

Gornju strukturu možete koristiti za crtanje bilo koje druge 2D karte boja. Ne morate se ni držati matematičkih funkcija. Ako u datotečnom sustavu imate ogroman niz podataka, možda podatke o određenim demografskim podacima ili bilo koje druge statističke podatke, možete ih priključiti izmjenom X, Y vrijednosti bez mijenjanja odjeljka mape boja.

Nadam se da vam je ovaj članak bio koristan i ako volite sličan sadržaj, javite nam.

Kako prikazati OSD prekrivač u aplikacijama i igrama na cijelom zaslonu za Linux
Igranje igara preko cijelog zaslona ili upotreba aplikacija u režimu preko cijelog zaslona bez ometanja može vas odsjeći od relevantnih informacija o ...
Top 5 karata za hvatanje igara
Svi smo vidjeli i voljeli streaming reprodukcije na YouTubeu. PewDiePie, Jakesepticye i Markiplier samo su neki od najboljih igrača koji su zaradili m...
Kako razviti igru ​​na Linuxu
Prije deset godina malo je Linux korisnika predviđalo da će njihov omiljeni operativni sustav jednog dana biti popularna platforma za igranje komercij...