logo

Seaborn Heatmap – komplexní průvodce

Teplotní mapa je definována jako grafické znázornění dat pomocí barev k vizualizaci hodnoty matice. V tomto případě se pro reprezentaci běžnějších hodnot nebo vyšších aktivit používají jasnější barvy v podstatě načervenalé barvy a pro reprezentaci méně běžných hodnot nebo hodnot aktivity jsou preferovány tmavší barvy. Teplotní mapa je také definována názvem matice stínování. Teplotní mapy v Seaborn lze vykreslovat pomocí funkce seaborn.heatmap().

seaborn.heatmap()

Syntax: seaborn.heatmap( data , * , vmin=Žádný , vmax=Žádný , cmap=Žádný , střed=Žádný , annot_kws=Ne , šířky řádků=0 , linecolor='bílá' , cbar=Pravda , **kwargs )



Důležité parametry:

    data: 2D datová sada, kterou lze převést do ndarray. vmin, vmax: Hodnoty pro ukotvení mapy barev, jinak jsou odvozeny z dat a dalších argumentů klíčových slov. cmap: Mapování z datových hodnot do barevného prostoru. centrum: Hodnota, na kterou se má mapa barev vycentrovat při vykreslování divergentních dat. annot: Pokud je True, zapište hodnotu dat do každé buňky. fmt: Kód formátování řetězce, který se použije při přidávání anotací. linewidths: Šířka čar, které rozdělí každou buňku. linecolor: Barva čar, které rozdělí každou buňku. cbar: Zda se má nakreslit barevný pruh.

Všechny parametry kromě dat jsou volitelné.

Vrácení: Objekt typu matplotlib.axes._subplots.AxesSubplot



Pojďme pochopit teplotní mapu s příklady.

Základní teplotní mapa

Vytvoření teplotní mapy s výchozími parametry. Budeme vytvářet 10×10 2-D data pomocí datum() funkce modulu 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()>

>

>

Výstup:

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]]>

Ve všech příkladech použijeme stejná data.

Ukotvení barevné mapy

Pokud nastavíme min hodnotu do 30 a vmax hodnotu na 70, pak se zobrazí pouze buňky s hodnotami mezi 30 a 70. Tomu se říká ukotvení barevné mapy.

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()>

>

>

Výstup:

Výběr barevné mapy

V tomto se podíváme na cmap parametr. Matplotlib nám poskytuje více barevných map, můžete se podívat na všechny tady . V našem příkladu budeme používat karta20 .

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()>

>

>

Výstup:

Centrování barevné mapy

Vystředění cmapu na 0 předáním centrum parametr jako 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()>

>

>

Výstup:

Zobrazení hodnot buněk

Pokud chceme zobrazit hodnotu buněk, pak parametr předáme oni říkají jako Pravda. fmt slouží k výběru datového typu obsahu zobrazených buněk.

zkuste catch catch java

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()>

>

>

Výstup:

Přizpůsobení oddělovací čáry

Tloušťku a barvu čar oddělujících buňky můžeme změnit pomocí šířky čar a barva čáry parametry resp.

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()>

>

>

Výstup:

Skrytí barevného pruhu

Barevný pruh můžeme zakázat nastavením cbar parametr 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()>

>

>

Výstup:

Odstranění štítků

Můžeme deaktivovat x-label a y-label předáním False v xticklabels a yticklabels parametry resp.

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()>

>

>

Výstup: