Python

Tepelné mapy a farby v Matplotlibe

Tepelné mapy a farby v Matplotlibe
Vizualizácia údajov je jedným z najdôležitejších krokov v Data Science (alebo v akejkoľvek inej vede). My ako ľudia sme zlí v chápaní radov a radov čísel. Preto je vždy užitočné mať k dispozícii nástroj ako Matplotlib, ktorý nám pomôže vyvinúť vizuálnu intuíciu toho, čo sa deje, keď napríklad algoritmus strojového učenia klasifikuje obrovské množstvá údajov.

Zatiaľ čo grafy znázorňujúce vzťah medzi dvoma premennými, ako je výška a hmotnosť, je možné ľahko vykresliť na plochú obrazovku, ako je to znázornené nižšie, veci sú skutočne nepríjemné, keď máme viac ako dva parametre.

Vtedy sa ľudia pokúšajú prejsť na 3D grafy, ktoré sú však často mätúce a neohrabané, čo marí celý účel vizualizácie údajov. Potrebujeme tepelné mapy pre vizuál.

Čo sú to tepelné mapy?

Ak sa pozriete na obrázok z termálnej kamery, môžete vidieť doslova tepelnú mapu. Termovízna kamera predstavuje inú teplotu ako rôzne farby. Schéma zafarbenia oslovuje našu intuíciu, že červená je „teplá farba“ a na vyjadrenie studených povrchov používa modrú a čiernu farbu.

Tento pohľad na Mars je skutočne dobrým príkladom, keď sú studené oblasti modrej farby, zatiaľ čo teplejšie oblasti sú zväčša červené a žlté. Farebná lišta na obrázku zobrazuje, aká farba predstavuje akú teplotu.

Pomocou matplotlib môžeme spojiť s bodom (x, y) v grafe konkrétnu farbu predstavujúcu premennú, ktorú sa snažíme vizualizovať. Nemusí to byť teplota, môže to byť akákoľvek iná premenná. Taktiež zobrazíme a farebná lišta vedľa označiť používateľov, čo znamenajú rôzne farby.

Často môžete vidieť ľudí, ktorí namiesto teplotných máp spomínajú farebné mapy. Často sa používajú zameniteľné. Colormap je všeobecnejší pojem.

Inštalácia a import Matplotlib a súvisiacich balíkov

Ak chcete začať používať Matplotlib, uistite sa, že máte nainštalovaný Python (najlepšie Python 3 a pip). Budete tiež potrebovať numpy, scipy a pandy pracovať s množinami údajov. Pretože ideme vykresliť jednoduchú funkciu, tak iba dva z balíkov numpy a matplotlib budú nevyhnutné.

$ pip nainštalovať matplotlib numpy
# alebo ak máte nainštalovaný python dva aj tri
$ pip3 nainštalovať matplotlib numpy

Po nainštalovaní knižníc sa musíte ubezpečiť, že sa importujú do vášho programu python.

importovať numpy ako np
import matplotlib.pyplot ako plt

Teraz môžete používať funkcie poskytované týmito knižnicami pomocou podobnej syntaxe np.numpyfunction ()plt.nejaká iná funkcia ().

Niekoľko príkladov

Začnime s vykreslením jednoduchej matematickej funkcie, ktorá vezme body v rovine (ich súradnice x a y) a priradí im hodnotu. Screenshot nižšie zobrazuje funkciu spolu s grafom.

Rôzne farby predstavujú rôzne hodnoty (ako je naznačené na mierke vedľa grafu). Pozrime sa na kód, ktorý je možné použiť na jeho generovanie.

importovať numpy ako np
import matplotlib.pyplot ako plt
 
# Matematickú funkciu musíme vykresliť
def z_func (x, y):
návrat (1 - (x ** 2 + y ** 3)) * np.exp (- (x ** 2 + y ** 2) / 2)
# Nastavenie vstupných hodnôt
x = np.arange (-3.0, 3.0, 0.1)
y = np.arange (-3.0, 3.0, 0.1)
X, Y = np.meshgrid (x, y)
 
# Výpočet výstupu a jeho uloženie do poľa Z
Z = z_func (X, Y)
 
im = plt.imshow (Z, cmap = plt.cm.RdBu, rozsah = (- 3, 3, 3, -3), interpolácia = 'bilineárna')
 
plt.colorbar (im);
 
plt.title ('$ z = (1-x ^ 2 + y ^ 3) e ^ - (x ^ 2 + y ^ 2) / 2 $')
 
plt.šou()

Prvá vec, ktorú si všimneme, je, že importujeme iba matplotlib.pyplotuje malú časť celej knižnice. Pretože je projekt dosť starý, nazhromaždil sa za tie roky veľa vecí. Napríklad matplotlib.pyplot bol populárny už v tej dobe, ale teraz je iba historickou relikviou a jeho import len ​​pridáva do vášho programu viac nadúvania.

Ďalej definujeme matematickú funkciu, ktorú chceme vykresliť. Má dve hodnoty (x, y) a vráti tretiu hodnotu z. Definovali sme funkciu, ktorá sa zatiaľ nepoužíva.

Nasledujúca časť sa zaoberá úlohou vytvoriť pole vstupných hodnôt, na ktoré používame numpy, aj keď môžete použiť build in rozsah () ak chcete, fungujte pre to. Keď je pripravený zoznam hodnôt x a y (od záporných 3 do 3), vypočítame z nich hodnotu z.

Teraz, keď sme vypočítali svoje vstupy a výstupy, môžeme výsledky vykresliť. The plt.imshow () povie pythonu, že obraz sa bude týkať Z, čo je naša výstupná premenná. Tiež sa v ňom hovorí, že to bude farebná mapa, cmap, s červeno-modrou (RdBu) Stupnica siahajúca od -3 do 3 na obidvoch osiach. The interpolácia tento parameter robí graf plynulejšie, umelo. Inak by váš obrázok vyzeral dosť pixelovaný a hrubý.

V tomto okamihu sa graf vytvorí, iba sa nevytlačí. Potom pridáme farebný pruh na bočnej strane, aby sme pomohli korelovať rôzne hodnoty Z s rôznymi farbami, a spomenieme rovnicu v nadpise. To sa deje v krokoch plt.farebná lišta (im) a plt.titul (…). Nakoniec, volanie funkcie nám ukáže graf na obrazovke.

Opätovná použiteľnosť

Vyššie uvedenú štruktúru môžete použiť na vykreslenie akejkoľvek inej 2D farebnej mapy. Nemusíte sa držať iba matematických funkcií. Ak máte vo svojom súborovom systéme veľké množstvo údajov, možno informácie o určitých demografických údajoch alebo akékoľvek iné štatistické údaje, ktoré môžete doplniť úpravou X, Y hodnoty bez zmeny sekcie farebnej mapy.

Dúfam, že vám bol tento článok užitočný a ak sa vám páči podobný obsah, dajte nám vedieť.

Hry Výukový program Battle for Wesnoth
Výukový program Battle for Wesnoth
Battle for Wesnoth je jednou z najpopulárnejších open source strategických hier, ktoré si v súčasnosti môžete zahrať. Táto hra bola nielen vyvinutá ve...
Hry 0 A.D. Výukový program
0 A.D. Výukový program
Z mnohých strategických hier je tu 0 A.D. dokáže vyniknúť ako komplexný titul a veľmi hlboká, taktická hra napriek tomu, že je otvoreným zdrojom. Vývo...
Hry Výukový program pre Unity3D
Výukový program pre Unity3D
Úvod do Unity 3D Unity 3D je výkonný nástroj na vývoj hier. Je to multiplatforma, ktorá vám umožňuje vytvárať hry pre mobilné telefóny, web, počítače ...