Python

Siltuma kartes un kolorbāri Matplotlibā

Siltuma kartes un kolorbāri Matplotlibā
Datu vizualizācija ir viens no vissvarīgākajiem soļiem Datu zinātnē (vai jebkurā citā zinātnē). Mēs kā cilvēki slikti saprotam rindu un skaitļu rindas. Tāpēc vienmēr ir noderīgi izmantot tādu lietderību kā Matplotlib, lai palīdzētu mums izveidot vizuālu intuīciju par notiekošo, ja, piemēram, mašīnmācīšanās algoritms klasificē milzīgu datu daudzumu.

Lai gan grafikus, kas parāda attiecību starp diviem mainīgajiem, piemēram, augstumu un svaru, var viegli uzzīmēt uz plakana ekrāna, kā parādīts zemāk, viss kļūst ļoti neskaidrs, ja mums ir vairāk nekā divi parametri.

Tas ir, kad cilvēki mēģina pāriet uz 3D grafikiem, taču tie bieži ir mulsinoši un neveikli, kas iznīcina visu datu vizualizācijas mērķi. Vizuālajiem materiāliem mums ir nepieciešamas siltuma kartes.

Kas ir siltuma kartes?

Ja paskatās uz attēlu no termokameras, var redzēt burtisku karstuma karti. Termiskās attēlveidošanas kamera parāda dažādu temperatūru kā dažādas krāsas. Krāsu shēma atsaucas uz mūsu intuīciju, ka sarkanā krāsa ir “silta krāsa” un lai zilā un melnā krāsa atspoguļotu aukstās virsmas.

Šis Marsa skats ir patiešām labs piemērs, kur aukstie reģioni ir zilā krāsā, bet siltākie reģioni galvenokārt sarkanā un dzeltenā krāsā. Krāsu josla attēlā parāda, kāda krāsa kādu temperatūru attēlo.

Izmantojot matplotlib, mēs varam saistīt ar punktu (x, y) grafikā ar noteiktu krāsu, kas attēlo mainīgo, kuru mēs mēģinām vizualizēt. Tam nav jābūt temperatūrai, tas var būt jebkurš cits mainīgais. Mēs parādīsim arī a krāsu josla blakus, lai norādītu lietotājiem, ko nozīmē dažādas krāsas.

Bieži vien jūs redzējāt cilvēkus, kuri karstuma karšu vietā piemin koloraktus. Tos bieži lieto savstarpēji. Colormap ir vispārīgāks termins.

Matplotlib un saistīto pakotņu instalēšana un importēšana

Lai sāktu darbu ar Matplotlib, pārliecinieties, vai esat instalējis Python (vēlams, Python 3 un pip). Jums arī vajadzēs numpy, scipy un pandas strādāt ar datu kopām. Tā kā mēs plānojam uzzīmēt vienkāršu funkciju, tikai divi no pakotnēm numpy un matplotlib būs nepieciešami.

$ pip instalējiet matplotlib numpy
# vai ja jums ir instalēti gan divi, gan trīs pitons
$ pip3 instalējiet matplotlib numpy

Kad esat instalējis bibliotēkas, jums jāpārliecinās, vai tās tiek importētas jūsu python programmā.

importēt numpy kā np
importa matplotlib.pyplot kā plt

Tagad jūs varat izmantot šo bibliotēku nodrošinātās funkcijas, izmantojot līdzīgu sintaksi np.numpyfunction ()un  plt.kāda cita funkcija ().

Daži piemēri

Sāksim ar vienkāršas matemātiskas funkcijas uzzīmēšanu, kas ņem punktus uz plaknes (to x un y koordinātas) un piešķir tiem vērtību. Zemāk redzamajā ekrānuzņēmumā funkcija parādīta kopā ar zemes gabalu.

Dažādas krāsas attēlo dažādas vērtības (kā norāda skala blakus diagrammai). Apskatīsim kodu, kuru var izmantot, lai to ģenerētu.

importēt numpy kā np
importa matplotlib.pyplot kā plt
 
# Matemātiskā funkcija, kas mums jāplāno
def z_func (x, y):
atgriešanās (1 - (x ** 2 + y ** 3)) * np.derīguma termiņš (- (x ** 2 + y ** 2) / 2)
# Ievades vērtību iestatīšana
x = np.apelsīns (-3.0, 3.0, 0.1)
y = np.apelsīns (-3.0, 3.0, 0.1)
X, Y = np.meshgrid (x, y)
 
# Rezultāta aprēķināšana un glabāšana masīvā Z
Z = z_func (X, Y)
 
im = plt.imshow (Z, cmap = plt.cm.RdBu, pakāpe = (- 3, 3, 3, -3), interpolācija = 'bilināra')
 
plt.krāsu josla (im);
 
plt.nosaukums ('$ z = (1-x ^ 2 + y ^ 3) e ^ - (x ^ 2 + y ^ 2) / 2 $')
 
plt.rādīt ()

Vispirms jāpievērš uzmanība tam, ka mēs importējam tikai matplotlib.Pyplot nelielu daļu no visas bibliotēkas. Tā kā projekts ir diezgan vecs, gadu gaitā ir uzkrāts daudz lietu. Piemēram, matplotlib.pyplot bija populārs tajā laikā, bet tagad tas ir tikai vēsturiska relikvija, un tā importēšana tikai palielina jūsu programmas uzpūšanos.

Tālāk mēs definējam matemātisko funkciju, kuru mēs vēlamies uzzīmēt. Tas aizņem divas vērtības (x, y) un atgriež trešo vērtību z. Mēs esam definējuši funkciju, kas to vēl nav izmantojusi.

Nākamajā sadaļā tiek uzņemts uzdevums izveidot masīvu ievades vērtības, mēs tam izmantojam numpy, lai gan jūs varat izmantot būvējumu diapazons () funkcija tai, ja vēlaties. Kad ir sagatavots x un y vērtību saraksts (sākot no negatīva 3 līdz 3), mēs no tā aprēķinām z vērtību.

Tagad, kad esam aprēķinājuši savus ieguldījumus un izejas, mēs varam uzzīmēt rezultātus. The plt.imshow () stāsta pitonam, ka attēls būs saistīts ar Z, kas ir mūsu izejas mainīgais. Tajā arī teikts, ka tas būs kolonnkarte, cmap, ar sarkanu zilu (RdBu) Skala, kas stiepjas no -3 līdz 3 uz abām asīm. The interpolācija parametrs padara grafiku vienmērīgāku, mākslīgu. Pretējā gadījumā jūsu attēls izskatās diezgan pikseļots un rupjš.

Šajā brīdī grafiks tiek izveidots, tikai netiek izdrukāts. Pēc tam mēs pievienojam krāsu joslu sānos, lai palīdzētu korelēt dažādas Z vērtības ar dažādām krāsām, un nosaukumā pieminējam vienādojumu. Tie tiek veikti pakāpeniski plt.krāsu josla (ne) un plt.nosaukums (…). Visbeidzot, izsaucot funkciju, ekrānā tiek parādīta diagramma.

Atkārtoti izmantojama

Jūs varat izmantot iepriekš minēto struktūru, lai uzzīmētu jebkuru citu 2D kolorapartu. Jums pat nav jāpieturas pie matemātiskām funkcijām. Ja jūsu failu sistēmā ir milzīgi datu masīvi, iespējams, informācija par noteiktu demogrāfisko stāvokli vai kādi citi statistikas dati, varat to pieslēgt, modificējot X, Y vērtības, nemainot krāsu kartes sadaļu.

Ceru, ka šis raksts jums šķita noderīgs, un, ja jums patīk līdzīgs saturs, informējiet mūs.

Labākās spēles, ko spēlēt ar rokas izsekošanu
Oculus Quest nesen iepazīstināja ar lielisku ideju par rokas izsekošanu bez kontrolieriem. Ar arvien lielāku spēļu un aktivitāšu skaitu, kas atbalsta ...
Kā parādīt OSD pārklājumu pilnekrāna Linux lietotnēs un spēlēs
Spēlējot pilnekrāna spēles vai lietojot lietotnes bez atrautības pilnekrāna režīmā, jūs varat izslēgt no attiecīgās sistēmas informācijas, kas redzama...
Top 5 spēļu tveršanas kartes
Mēs visi esam redzējuši un mīlējuši straumēšanas spēles pakalpojumā YouTube. PewDiePie, Jakesepticye un Markiplier ir tikai daži no labākajiem spēlētā...