Seaborn Heatmap: una guia completa
Mapa de calor es defineix com una representació gràfica de dades utilitzant colors per visualitzar el valor de la matriu. En això, per representar valors més comuns o activitats més altes s'utilitzen colors més brillants bàsicament vermellosos i per representar valors menys comuns o d'activitat es prefereixen colors més foscos. El mapa de calor també es defineix pel nom de la matriu d'ombrejat. Els mapes de calor a Seaborn es poden representar mitjançant la funció seaborn.heatmap().
seaborn.heatmap()
Sintaxi: seaborn.heatmap( dades , * , vmin=Cap , vmax=Cap , cmap=Cap , centre=Cap , annot_kws=No , amplades de línia=0 , linecolor='blanc' , cbar=Veritat , **Quargs )
Paràmetres importants:
dades: conjunt de dades 2D que es pot coaccionar en un ndarray. vmin, vmax: Valors per ancorar el mapa de colors, en cas contrari es dedueixen de les dades i altres arguments de paraula clau. cmap: el mapeig dels valors de les dades a l'espai de color. centre: el valor al qual centrar el mapa de colors quan es tracen dades divergents. annot: si és cert, escriviu el valor de les dades a cada cel·la. fmt: codi de format de cadena per utilitzar quan s'afegeixen anotacions. amples de línia: amplada de les línies que dividiran cada cel·la. linecolor: Color de les línies que dividiran cada cel·la. cbar: indica si es dibuixa una barra de colors.
Tots els paràmetres excepte les dades són opcionals.
Devolucions: Un objecte del tipus matplotlib.axes._subplots.AxesSubplot
Entenem el mapa de calor amb exemples.
Mapa de calor bàsic
Elaboració d'un mapa de calor amb els paràmetres per defecte. Crearem dades 2-D de 10 × 10 utilitzant el data() funció del mòdul NumPy.
Python 3
# 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()> |
Sortida:
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]]
Utilitzarem aquestes mateixes dades en tots els exemples.
Ancoratge del mapa de colors
Si establim el min valor a 30 i el vmàx valor a 70, només es mostraran les cel·les amb valors entre 30 i 70. Això s'anomena ancoratge del mapa de colors.
Python 3
# 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()> |
Sortida:
Selecció del mapa de colors
En això, mirarem el cmap paràmetre. Matplotlib ens proporciona múltiples mapes de colors, podeu mirar-los tots aquí . En el nostre exemple, farem servir pestanya 20 .
Python 3
# 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()> |
Sortida:
Centrant el mapa de colors
Centrant el cmap a 0 passant el centre paràmetre com a 0.
Python 3
# 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()> |
Sortida:
Mostra els valors de les cel·les
Si volem mostrar el valor de les cel·les, passem el paràmetre ells diuen com a Veritat. fmt s'utilitza per seleccionar el tipus de dades del contingut de les cel·les que es mostren.
Python 3
# 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()> |
Sortida:
Personalització de la línia de separació
Podem canviar el gruix i el color de les línies que separen les cel·les utilitzant el amplades de línia i color de línia paràmetres respectivament.
Python 3
# 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()> |
Sortida:
Ocultant la barra de colors
Podem desactivar la barra de colors configurant el cbar paràmetre a Fals.
Python 3
# 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()> |
Sortida:
Eliminació de les etiquetes
Podem desactivar l'etiqueta x i l'etiqueta y passant False al xticklabels i ytiquetes paràmetres respectivament.
Python 3
# 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()> |
Sortida: