logo

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.

matrius en java

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: