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 npuvozi 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 npuvozi 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.