Seaborn Heatmap – obsežen vodnik

Seaborn Heatmap – obsežen vodnik

Toplotni zemljevid je definiran kot grafična predstavitev podatkov z uporabo barv za vizualizacijo vrednosti matrike. Pri tem se za predstavitev pogostejših vrednosti ali višjih dejavnosti uporabljajo svetlejše barve, v bistvu rdečkaste barve, za predstavitev manj običajnih vrednosti ali dejavnosti pa so prednostne temnejše barve. Heatmap je definiran tudi z imenom senčilne matrike. Toplotne zemljevide v Seabornu lahko narišete s funkcijo seaborn.heatmap().

seaborn.heatmap()

Sintaksa: seaborn.heatmap( podatke , * , vmin=Brez , vmax=Brez , cmap=Brez , center=Brez , annot_kws=Ne , širina črte=0 , linecolor='bela' , cbar=Res , **kwargs )

Pomembni parametri:

    podatki: nabor 2D podatkov, ki ga je mogoče prisiliti v ndarray. vmin, vmax: Vrednosti za zasidranje barvne karte, sicer so izpeljane iz podatkov in drugih argumentov ključnih besed. cmap: preslikava podatkovnih vrednosti v barvni prostor. center: Vrednost, na katero centrirate barvno karto pri izrisu divergentnih podatkov. annot: Če je True, zapišite vrednost podatkov v vsako celico. fmt: koda za oblikovanje niza, ki se uporablja pri dodajanju opomb. linewidths: širina črt, ki bodo delile vsako celico. barva črte: Barva črt, ki bodo delile vsako celico. cbar: Ali naj se nariše barvni trak.

Vsi parametri razen podatkov so neobvezni.

Vrne: Objekt tipa matplotlib.axes._subplots.AxesSubplot

Razumejmo toplotni zemljevid s primeri.

Osnovni toplotni zemljevid

Izdelava toplotne karte s privzetimi parametri. Ustvarili bomo 10 × 10 2-D podatke z uporabo datum() funkcijo modula NumPy.

Python3




# importing the modules> import> numpy as np> import> seaborn as sn> import> matplotlib.pyplot as plt> > # generating 2-D 10x10 matrix of random numbers> # from 1 to 100> data> => np.random.randint(low> => 1> ,> > high> => 100> ,> > size> => (> 10> ,> 10> ))> print> (> 'The data to be plotted: '> )> print> (data)> > # plotting the heatmap> hm> => sn.heatmap(data> => data)> > # displaying the plotted heatmap> plt.show()>

Izhod:

The data to be plotted: [[46 30 55 86 42 94 31 56 21 7] [68 42 95 28 93 13 90 27 14 65] [73 84 92 66 16 15 57 36 46 84] [ 7 11 41 37 8 41 96 53 51 72] [52 64 1 80 33 30 91 80 28 88] [19 93 64 23 72 15 39 35 62 3] [51 45 51 17 83 37 81 31 62 10] [ 9 28 30 47 73 96 10 43 30 2] [74 28 34 26 2 70 82 53 97 96] [86 13 60 51 95 26 22 29 14 29]] 

Te iste podatke bomo uporabili v vseh primerih.

Sidranje barvne karte

Če nastavimo min vrednost do 30 in vmax vrednost na 70, bodo prikazane le celice z vrednostmi med 30 in 70. To se imenuje sidranje barvne karte.

Python3




# importing the modules> import> numpy as np> import> seaborn as sn> import> matplotlib.pyplot as plt> > # generating 2-D 10x10 matrix of random numbers> # from 1 to 100> data> => np.random.randint(low> => 1> ,> > high> => 100> ,> > size> => (> 10> ,> 10> ))> > # setting the parameter values> vmin> => 30> vmax> => 70> > # plotting the heatmap> hm> => sn.heatmap(data> => data,> > vmin> => vmin,> > vmax> => vmax)> > # displaying the plotted heatmap> plt.show()>

Izhod:

Izbira barvne karte

Pri tem si bomo ogledali cmap parameter. Matplotlib nam ponuja več barvnih zemljevidov, ogledate si jih lahko vse tukaj . V našem primeru bomo uporabili zavihek20 .

Python3




# importing the modules> import> numpy as np> import> seaborn as sn> import> matplotlib.pyplot as plt> > # generating 2-D 10x10 matrix of random numbers> # from 1 to 100> data> => np.random.randint(low> => 1> ,> > high> => 100> ,> > size> => (> 10> ,> 10> ))> > # setting the parameter values> cmap> => 'tab20'> > # plotting the heatmap> hm> => sn.heatmap(data> => data,> > cmap> => cmap)> > # displaying the plotted heatmap> plt.show()>

Izhod:

Centriranje barvne karte

Centriranje cmap na 0 s posredovanjem center parameter kot 0.

Python3




# importing the modules> import> numpy as np> import> seaborn as sn> import> matplotlib.pyplot as plt> > # generating 2-D 10x10 matrix of random numbers> # from 1 to 100> data> => np.random.randint(low> => 1> ,> > high> => 100> ,> > size> => (> 10> ,> 10> ))> > # setting the parameter values> cmap> => 'tab20'> center> => 0> > # plotting the heatmap> hm> => sn.heatmap(data> => data,> > cmap> => cmap,> > center> => center)> > # displaying the plotted heatmap> plt.show()>

Izhod:

Prikaz vrednosti celic

Če želimo prikazati vrednost celic, potem posredujemo parameter pravijo kot True. fmt se uporablja za izbiro podatkovnega tipa vsebine prikazanih celic.

Python3




# importing the modules> import> numpy as np> import> seaborn as sn> import> matplotlib.pyplot as plt> > # generating 2-D 10x10 matrix of random numbers> # from 1 to 100> data> => np.random.randint(low> => 1> ,> > high> => 100> ,> > size> => (> 10> ,> 10> ))> > # setting the parameter values> annot> => True> > # plotting the heatmap> hm> => sn.heatmap(data> => data,> > annot> => annot)> > # displaying the plotted heatmap> plt.show()>

Izhod:

Prilagajanje ločilne črte

Spreminjamo lahko debelino in barvo črt, ki ločujejo celice, z uporabo širine črt in barva črte parametrov oz.

Python3




# importing the modules> import> numpy as np> import> seaborn as sn> import> matplotlib.pyplot as plt> > # generating 2-D 10x10 matrix of random numbers> # from 1 to 100> data> => np.random.randint(low> => 1> ,> > high> => 100> ,> > size> => (> 10> ,> 10> ))> > # setting the parameter values> linewidths> => 2> linecolor> => 'yellow'> > # plotting the heatmap> hm> => sn.heatmap(data> => data,> > linewidths> => linewidths,> > linecolor> => linecolor)> > # displaying the plotted heatmap> plt.show()>

Izhod:

Skrivanje barvne vrstice

Barvno vrstico lahko onemogočimo tako, da nastavimo cbar parameter na False.

Python3




# importing the modules> import> numpy as np> import> seaborn as sn> import> matplotlib.pyplot as plt> > # generating 2-D 10x10 matrix of random numbers> # from 1 to 100> data> => np.random.randint(low> => 1> ,> > high> => 100> ,> > size> => (> 10> ,> 10> ))> > # setting the parameter values> cbar> => False> > # plotting the heatmap> hm> => sn.heatmap(data> => data,> > cbar> => cbar)> > # displaying the plotted heatmap> plt.show()>

Izhod:

Odstranjevanje nalepk

Oznaki x in y lahko onemogočimo tako, da podamo False v xticklabels in yticklabels parametrov oz.

Python3




# importing the modules> import> numpy as np> import> seaborn as sn> import> matplotlib.pyplot as plt> > # generating 2-D 10x10 matrix of random numbers> # from 1 to 100> data> => np.random.randint(low> => 1> ,> > high> => 100> ,> > size> => (> 10> ,> 10> ))> > # setting the parameter values> xticklabels> => False> yticklabels> => False> > # plotting the heatmap> hm> => sn.heatmap(data> => data,> > xticklabels> => xticklabels,> > yticklabels> => yticklabels)> > # displaying the plotted heatmap> plt.show()>

Izhod: