Mapa cieplna Seaborn – kompleksowy przewodnik

Mapa cieplna Seaborn – kompleksowy przewodnik

Mapa ciepła definiuje się jako graficzną reprezentację danych przy użyciu kolorów w celu wizualizacji wartości macierzy. W tym przypadku, aby przedstawić bardziej powszechne wartości lub wyższe aktywności, stosuje się jaśniejsze kolory, w zasadzie kolory czerwonawe, a do przedstawienia mniej powszechnych lub aktywności wartości, preferowane są ciemniejsze kolory. Mapa cieplna jest również definiowana przez nazwę macierzy cieniowania. Mapy cieplne w Seaborn można wykreślać za pomocą funkcji seaborn.heatmap().

seaborn.heatmap()

Składnia: seaborn.mapa cieplna( dane , * , vmin=Brak , vmax=Brak , cmap=Brak , środek=Brak , annot_kws=Nie , szerokość linii=0 , kolor linii=’biały’ , cbar=Prawda , **kwargs )

Ważne parametry:

    dane: zbiór danych 2D, który można przekształcić w ndarray. vmin, vmax: Wartości zakotwiczające mapę kolorów, w przeciwnym razie są one wywnioskowane z danych i innych argumentów słów kluczowych. cmap: Mapowanie wartości danych na przestrzeń kolorów. środek: Wartość, przy której należy wyśrodkować mapę kolorów podczas kreślenia rozbieżnych danych. adnotacja: Jeśli ma wartość True, wpisz wartość danych w każdej komórce. fmt: Kod formatowania ciągu znaków do użycia podczas dodawania adnotacji. linewidths: Szerokość linii dzielących każdą komórkę. linecolor: Kolor linii dzielących każdą komórkę. cbar: Określa, czy narysować pasek kolorów.

Wszystkie parametry z wyjątkiem danych są opcjonalne.

Zwroty: Obiekt typu matplotlib.axes._subplots.AxesSubplot

Przyjrzyjmy się mapie cieplnej na przykładach.

Podstawowa mapa cieplna

Tworzenie mapy cieplnej z domyślnymi parametrami. Będziemy tworzyć dane 2-D o wymiarach 10×10 przy użyciu data() funkcja modułu 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()>

Wyjście:

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

We wszystkich przykładach będziemy używać tych samych danych.

Zakotwiczenie mapy kolorów

Jeżeli ustawimy min wartość do 30 i vmaks wartość na 70, wówczas zostaną wyświetlone tylko komórki z wartościami pomiędzy 30 a 70. Nazywa się to zakotwiczaniem mapy kolorów.

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

Wyjście:

Wybór mapy kolorów

W tym przypadku przyjrzymy się cmap parametr. Matplotlib udostępnia nam wiele map kolorów, możesz przeglądać je wszystkie Tutaj . W naszym przykładzie będziemy używać zakładka20 .

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

Wyjście:

Centrowanie mapy kolorów

Centrowanie cmap na 0 poprzez przekazanie 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()>

Wyjście:

Wyświetlanie wartości komórek

Jeżeli chcemy wyświetlić wartość komórek to przekazujemy parametr Mówią jako Prawdziwe. fmt służy do wyboru typu danych zawartości wyświetlanych komórek.

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

Wyjście:

Dostosowanie linii oddzielającej

Za pomocą przycisku możemy zmienić grubość i kolor linii oddzielających komórki szerokości linii I kolor linii odpowiednio parametry.

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

Wyjście:

Ukrywanie paska kolorów

Możemy wyłączyć pasek kolorów, ustawiając opcję cbar parametr na Fałsz.

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

Wyjście:

Usuwanie etykiet

Możemy wyłączyć etykietę x i etykietę y, przekazując False w pliku xticklabels I yticklabels odpowiednio parametry.

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

Wyjście: