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.
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: