„Python“

Šilumos žemėlapiai ir koloratai Matplotlibe

Šilumos žemėlapiai ir koloratai Matplotlibe
Duomenų vizualizavimas yra vienas iš svarbiausių duomenų mokslo (ar bet kurio kito mokslo) žingsnio. Mes, kaip žmonės, menkai suvokiame eilutes ir skaičių eilutes. Štai kodėl visada naudinga turėti tokią priemonę kaip „Matplotlib“, kuri padėtų mums sukurti vaizdinę intuiciją apie tai, kas vyksta, kai, tarkime, mašininio mokymosi algoritmas klasifikuoja didžiulius duomenų kiekius.

Nors diagramas, rodančias santykį tarp dviejų kintamųjų, tokių kaip aukštis ir svoris, galima lengvai pavaizduoti plokščiaekraniu ekranu, kaip parodyta žemiau, viskas tampa netvarkinga, kai turime daugiau nei du parametrus.

Štai tada žmonės bando pereiti prie 3D siužetų, tačiau jie dažnai yra painūs ir nepatogūs, o tai panaikina visą duomenų vizualizavimo tikslą. Mums reikalingi šilumos vaizdai.

Kas yra šilumos žemėlapiai?

Pažvelgę ​​į vaizdą iš termokameros, galite pamatyti pažodinį šilumos žemėlapį. Terminio vaizdo kamera rodo skirtingą temperatūrą kaip skirtingas spalvas. Spalvų schema kreipiasi į mūsų intuiciją, kad raudona spalva yra „šilta“, o mėlyna ir juoda spalva atspindi šaltus paviršius.

Šis Marso vaizdas yra tikrai geras pavyzdys, kai šalti regionai yra mėlynos spalvos, o šilti - daugiausia raudoni ir geltoni. Spalvų juosta paveikslėlyje parodo, kokia spalva atspindi kokią temperatūrą.

Naudodami matplotlib galime susieti grafo tašką (x, y) su konkrečia spalva, rodančia kintamąjį, kurį bandome vizualizuoti. Tai neturi būti temperatūra, tai gali būti bet kuris kitas kintamasis. Taip pat parodysime a spalvų juosta šalia jo nurodykite vartotojams, ką reiškia skirtingos spalvos.

Dažnai matydavote žmones, o ne šilumos žemėlapius, mininčius kolorapus. Jie dažnai naudojami pakaitomis. „Colormap“ yra bendresnis terminas.

„Matplotlib“ ir susijusių paketų diegimas ir importavimas

Norėdami pradėti naudotis „Matplotlib“, įsitikinkite, kad turite įdiegtą „Python“ (pageidautina „Python 3“ ir „pip“). Jums taip pat reikės numpy, skeptiškas ir pandos dirbti su duomenų rinkiniais. Kadangi mes ketiname parengti paprastą funkciją, tik du paketai numpy ir matplotlib bus reikalingi.

$ pip install matplotlib numpy
# Arba, jei turite abu ir tris pitonus
$ pip3 įdiekite matplotlib numpy

Įdiegę bibliotekas, turite įsitikinti, kad jos yra importuotos į jūsų python programą.

importuoti numerį kaip np
importuoti matplotlib.pyplotas kaip plt

Dabar galite naudoti šių bibliotekų teikiamas funkcijas naudodami sintaksę kaip np.skaičiaus funkcija ()ir  plt.kažkokia kita funkcija ().

Keletas pavyzdžių

Pradėkime nuo paprastos matematinės funkcijos, kuri paima taškus plokštumoje (jų x ir y koordinates) ir priskiria jiems vertę, braižymą. Žemiau pateiktoje ekrano kopijoje parodyta funkcija kartu su siužetu.

Skirtingos spalvos reiškia skirtingas vertes (kaip rodo skalė šalia siužeto). Pažvelkime į kodą, kurį galima naudoti tam generuoti.

importuoti numerį kaip np
importuoti matplotlib.pyplotas kaip plt
 
# Matematinė funkcija, kurią turime nubrėžti
def z_func (x, y):
grįžimas (1 - (x ** 2 + y ** 3)) * np.galiojimo laikas (- (x ** 2 + y ** 2) / 2)
# Įvesties reikšmių nustatymas
x = np.aranžas (-3.0, 3.0, 0.1)
y = np.aranžas (-3.0, 3.0, 0.1)
X, Y = np.tinklelis (x, y)
 
# Išvesties apskaičiavimas ir saugojimas masyve Z
Z = z_func (X, Y)
 
im = plt.imshow (Z, cmap = plt.cm.RdBu, laipsnis = (- 3, 3, 3, -3), interpoliacija = 'bilinear')
 
plt.spalvų juosta (ne);
 
plt.pavadinimas ('$ z = (1-x ^ 2 + y ^ 3) e ^ - (x ^ 2 + y ^ 2) / 2 $')
 
plt.Rodyti()

Pirmiausia reikia pastebėti, kad mes importuojame tik matplotlib.parinkite nedidelę visos bibliotekos dalį. Kadangi projektas yra gana senas, per daugelį metų sukaupta daugybė daiktų. Pavyzdžiui, matplotlib.pyplotas buvo populiarus tuo metu, bet dabar yra tik istorinė relikvija, o jo importavimas tiesiog padidina jūsų programą.

Toliau apibrėžiame matematinę funkciją, kurią norime nubrėžti. Tai paima dvi reikšmes (x, y) ir pateikia trečią reikšmę z. Apibrėžėme dar nenaudotą funkciją.

Kitame skyriuje atliekama užduočių sukurti masyvą įvesties reikšmių, tam mes naudojame numpy, nors jūs galite naudoti diapazonas() funkcija, jei norite. Parengę x ir y reikšmių sąrašą (svyruoja nuo neigiamos 3 iki 3), mes apskaičiuojame iš jo z vertę.

Dabar, kai apskaičiavome įvestis ir išvestis, galime suskaičiuoti rezultatus. The plt.imshow () pasakoja pitonui, kad vaizdas bus susijęs su Z, kuris yra mūsų išvesties kintamasis. Taip pat sakoma, kad tai bus spalvotas žemėlapis, cmap, su raudona mėlyna (RdBu) Skalė, besitęsianti nuo -3 iki 3 bet kurioje ašyje. The interpoliacija parametras daro grafiką sklandesnį, dirbtinai. Priešingu atveju jūsų vaizdas atrodytų gana pikselių ir grubus.

Šiuo metu grafikas yra sukurtas, tik nespausdinamas. Tada pridedame spalvų juostą šone, kad būtų lengviau susieti skirtingas Z reikšmes su skirtingomis spalvomis, ir paminėtume lygtį pavadinime. Tai daroma etapais plt.spalvų juosta (ne) ir plt.pavadinimas (…). Galiausiai, iškvietus funkciją, ekrane parodomas grafikas.

Pakartotinis panaudojimas

Galite naudoti aukščiau pateiktą struktūrą, norėdami brėžti bet kurią kitą 2D kolonėlę. Jums net nereikia laikytis matematinių funkcijų. Jei jūsų failų sistemoje yra daugybė duomenų masyvų, galbūt informacijos apie tam tikrus demografinius rodiklius ar bet kokius kitus statistinius duomenis galite prijungti pakeisdami X, Y reikšmės nekeičiant spalvų kortelės skyriaus.

Tikimės, kad šis straipsnis jums buvo naudingas, ir jei jums patinka panašus turinys, praneškite mums.

„OpenTTD“ pamoka
„OpenTTD“ yra vienas iš populiariausių verslo modeliavimo žaidimų. Šiame žaidime turite sukurti nuostabų transporto verslą. Tačiau pradėsite nuo mažda...
„SuperTuxKart“, skirta „Linux“
„SuperTuxKart“ yra puikus pavadinimas, sukurtas nemokamai suteikti „Mario Kart“ patirtį jūsų „Linux“ sistemoje. Tai gana sudėtinga ir smagu žaisti, yr...
„Battle for Wesnoth“ pamoka
„Battle for Wesnoth“ yra vienas populiariausių atvirojo kodo strateginių žaidimų, kurį šiuo metu galite žaisti. Šis žaidimas ne tik buvo kuriamas laba...