Python

Heatmaps in Colorbars v Matplotlib

Heatmaps in Colorbars v Matplotlib
Vizualizacija podatkov je eden najpomembnejših korakov v Data Science (ali kateri koli drugi znanosti). Kot ljudje slabo razumemo vrstice in vrstice števil. Zato je vedno koristno imeti pripomoček, kot je Matplotlib, ki nam pomaga razviti vizualno intuicijo dogajanja, ko algoritem strojnega učenja recimo razvršča ogromne količine podatkov.

Medtem ko lahko grafe, ki prikazujejo razmerje med dvema spremenljivkama, kot sta višina in teža, enostavno narišemo na raven zaslon, kot je prikazano spodaj, se stvari resnično zapletejo, če imamo več kot dva parametra.

Takrat ljudje poskušajo preklopiti na 3D-ploskve, vendar so te pogosto zmedene in okorne, kar premaga celoten namen vizualizacije podatkov. Za vizualne slike potrebujemo toplotne karte.

Kaj so toplotne karte?

Če si sliko ogledate s termalno kamero, lahko vidite dobesedno toplotno karto. Termovizijska kamera predstavlja različne temperature kot različne barve. Shema barvanja privlači našo intuicijo, da je rdeča "topla barva", modra in črna pa predstavljata hladne površine.

Ta pogled na Mars je res dober primer, ko so hladne regije modre barve, medtem ko so toplejše regije večinoma rdeče in rumene. Barvna vrstica na sliki prikazuje, katera barva predstavlja kakšno temperaturo.

Z uporabo matplotlib lahko povežemo s točko (x, y) na grafu z določeno barvo, ki predstavlja spremenljivko, ki jo skušamo vizualizirati. Ni nujno, da je temperatura, lahko je katera koli druga spremenljivka. Prikazali bomo tudi a barvna vrstica poleg tega, da uporabnikom pokaže, kaj pomenijo različne barve.

Pogosto bi videli, da ljudje namesto toplotnih map omenjajo barvne karte. Te se pogosto uporabljajo medsebojno. Colormap je bolj splošen izraz.

Namestitev in uvoz Matplotlib in sorodnih paketov

Za začetek uporabe Matplotliba preverite, ali imate nameščen Python (po možnosti Python 3 in pip). Potrebovali boste tudi numpy, scipy in pande za delo z nabori podatkov. Ker bomo izrisali preprosto funkcijo, sta le dva od paketov numpy in matplotlib bodo potrebni.

$ pip namestite matplotlib numpy
#ali če imate nameščena oba in trije python
$ pip3 namestite matplotlib numpy

Ko namestite knjižnice, se prepričajte, da so uvožene v vašem programu python.

uvozi numpy kot np
uvozi matplotlib.pyplot kot plt

Zdaj lahko funkcije, ki jih ponujajo te knjižnice, uporabljate s pomočjo sintakse like np.numpyfunction ()in  plt.nekaj drugih funkcij ().

Nekaj ​​primerov

Začnimo z risanjem preproste matematične funkcije, ki zajema točke na ravnini (njihovi koordinati x in y) in jim dodeli vrednost. Spodnji posnetek zaslona prikazuje funkcijo skupaj z zapletom.

Različne barve predstavljajo različne vrednosti (kot kaže lestvica poleg ploskve). Poglejmo si kodo, s katero lahko to ustvarimo.

uvozi numpy kot np
uvozi matplotlib.pyplot kot plt
 
# Matematična funkcija, ki jo moramo izrisati
def z_func (x, y):
vrnitev (1 - (x ** 2 + y ** 3)) * np.exp (- (x ** 2 + y ** 2) / 2)
# Nastavitev vhodnih vrednosti
x = np.arange (-3.0, 3.0, 0.1)
y = np.arange (-3.0, 3.0, 0.1)
X, Y = np.mrežna mreža (x, y)
 
# Izračun izhodne vrednosti in shranjevanje v matriko Z
Z = z_func (X, Y)
 
im = plt.imshow (Z, cmap = plt.cm.RdBu, obseg = (- 3, 3, 3, -3), interpolacija = "bilinearna")
 
plt.barvna vrstica (im);
 
plt.naslov ('$ z = (1-x ^ 2 + y ^ 3) e ^ - (x ^ 2 + y ^ 2) / 2 $')
 
plt.pokaži ()

Najprej je treba opaziti, da uvozimo samo matplotlib.pyplot majhen del celotne knjižnice. Ker je projekt precej star, se je skozi leta nabralo veliko stvari. Na primer matplotlib.pyplot je bil priljubljen že takrat, zdaj pa je le zgodovinska relikvija, uvoz pa samo doda več napihovanja vašemu programu.

Nato določimo matematično funkcijo, ki jo želimo izrisati. Zavzame dve vrednosti (x, y) in vrne tretjo vrednost z. Določili smo funkcijo, ki je še ni uporabljala.

Naslednji odsek prevzame nalogo ustvariti vrsto vhodnih vrednosti, za to uporabljamo numpy, čeprav lahko gradite v obseg () funkcijo zanj, če želite. Ko je seznam vrednosti x in y pripravljen (od negativnih 3 do 3), iz njega izračunamo vrednost z.

Zdaj, ko smo izračunali svoje vložke in izhode, lahko rezultate začrtamo. The plt.imshow () pove pythonu, da bo slika zadevala Z, ki je naša izhodna spremenljivka. Prav tako piše, da bo to barvna karta, cmap, z rdečo modro (RdBu) Lestvica, ki se razteza od -3 do 3 na obe osi. The interpolacija parameter naredi graf bolj umetno gladko. V nasprotnem primeru bi bila vaša slika videti precej pikselirana in groba.

Na tej točki se ustvari graf, ki se ne natisne. Nato dodamo barvno vrstico ob strani, da pomagamo povezati različne vrednosti Z z različnimi barvami in v naslovu omenimo enačbo. To se naredi v korakih plt.barvna vrstica (im) in plt.naslov (…). Končno, klic funkcije nam prikaže graf na zaslonu.

Ponovna uporaba

Zgornjo strukturo lahko uporabite za risanje katere koli druge 2D barvne karte. Ni se vam treba držati matematičnih funkcij. Če imate v datotečnem sistemu ogromno podatkovnih nizov, morda podatke o določenih demografskih podatkih ali katere koli druge statistične podatke, jih lahko vključite tako, da spremenite X, Y vrednosti brez spreminjanja odseka barvne karte.

Upam, da se vam je ta članek zdel koristen in če vam je všeč podobna vsebina, nam to sporočite.

Odprtokodna vrata komercialnih igralnih sistemov
Brezplačne, odprtokodne in medplatformacijske igre, ki jih lahko uporabite za igranje starih, pa tudi nekaterih dokaj nedavnih naslovov iger. V tem čl...
Najboljše igre ukazne vrstice za Linux
Ukazna vrstica ni le vaš največji zaveznik pri uporabi Linuxa - lahko je tudi vir zabave, saj jo lahko uporabljate za igranje številnih zabavnih iger,...
Najboljše aplikacije za preslikavo gamepadov za Linux
Če želite igre na Linuxu igrati z igralno ploščico namesto s tipičnim sistemom za vnos tipkovnice in miške, je za vas na voljo nekaj uporabnih aplikac...