¿Cómo agregar texto en las anotaciones de celda de un mapa de calor usando seaborn en Python?

Requisito previo: Mapa de calor de Seaborn

Mapa de calor

Sintaxis: seaborn.heatmap(data, *, vmin=Ninguno, vmax=Ninguno, cmap=Ninguno, center=Ninguno, annot_kws=Ninguno, linewidths=0, linecolor=’white’, cbar=True, **kwargs)

Parámetros importantes:

  • datos: conjunto de datos 2D que se puede convertir en un ndarray.
  • vmin , vmax: valores para anclar el mapa de colores; de lo contrario, se deducen de los datos y otros argumentos de palabras clave.
  • cmap: el mapeo de valores de datos al espacio de color.
  • centro: el valor en el que centrar el mapa de colores al trazar datos divergentes.
  • annot: si es verdadero, escriba el valor de los datos en cada celda.
  • fmt: código de formato de string para usar al agregar anotaciones.
  • linewidths: Ancho de las líneas que dividirán cada celda.
  • linecolor: Color de las líneas que dividirán cada celda.
  • cbar: Ya sea para dibujar una barra de colores.

Todos los parámetros excepto los datos son opcionales.

Devoluciones:

Las anotaciones del mapa de calor son una excelente manera de mostrar información adicional sobre filas y columnas en el mapa de calor. En general, para mostrar valores de datos sobre el mapa de calor, establecemos el parámetro annot en True , pero si desea agregar texto a las anotaciones de celda, puede hacerlo de las siguientes maneras:

Enfoque 1:  

  • Módulo de importación
  • Crear datos o cargar conjuntos de datos 
  • Cree otros datos similares a una array que tengan valores de texto que desee mostrar en el mapa de calor (con la misma forma que sus datos)
  • Proporcione estos datos similares a una array como un valor para anotar el parámetro del mapa de calor.
  • El parámetro fmt del mapa de calor es necesario si desea agregar valores no numéricos. Este parámetro se usa para agregar código de formato de string para usar al agregar anotaciones.
  • Dibujar mapa de calor
  • Gráfico de visualización

Ejemplo: 

Python3

# importing libraries
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
  
  
# creating random data
data = np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10],
                [11, 12, 13, 14, 15]])
  
# creating array of text
text = np.array([['A', 'B', 'C', 'D', 'E'], ['F', 'G', 'H', 'I', 'J'],
                 ['K', 'L', 'M', 'N', 'O']])
  
# creating subplot
fig, ax = plt.subplots()
  
# drawing heatmap on current axes
ax = sns.heatmap(data, annot=text, fmt="")

Producción : 

Si desea mostrar texto junto con valores de datos, debe crear un comentario personalizado concatenando estos dos valores.

Enfoque 2:  

  • Módulo de importación
  • Crear o cargar datos
  • Declarar una array de datos
  • Modifique la array de datos y la array de texto en 1D usando np.flatten().
  • Luego comprímalos para iterar sobre el texto y el valor.
  • Use strings formateadas para crear un nuevo valor personalizado.
  • Devuelve una array remodelada del mismo tamaño que contiene valores personalizados.
  • Crear mapa de calor
  • Gráfico de visualización

Ejemplo : 

Python3

# importing libraries
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
  
  
# creating random data
data = np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], 
                 [11, 12, 13, 14, 15]])
text = np.array([['A', 'B', 'C', 'D', 'E'], 
                 ['F', 'G', 'H', 'I', 'J'], ['K', 'L', 'M', 'N', 'O']])
  
# combining text with values
formatted_text = (np.asarray(["{0}\n{1:.2f}".format(
    text, data) for text, data in zip(text.flatten(), data.flatten())])).reshape(3, 5)
  
# drawing heatmap
fig, ax = plt.subplots()
ax = sns.heatmap(data, annot=formatted_text, fmt="", cmap="cool")

Producción : 

Publicación traducida automáticamente

Artículo escrito por tejalkadam18m y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *