Seaborn/Matplotlib: ¿Cómo puedo asignar nombres personalizados a las líneas que representan distribuciones en un diagrama KDE?
Estoy haciendo un diagrama de KDE de dos radios 1D de tamaño diferente con Seaborn.
import seaborn as sns
import numpy as np
# dummy data:
array1 = np.random.randint(10, size=10)
array2 = np.random.randint(10, size=15)
sns.displot([array1, array2], kind="kde")
¿Cómo puedo asignar nombres personalizados a las líneas que representan las distribuciones?
Pregunta hecha hace 3 años, 4 meses, 27 días - Por codexcrafter
4 Respuestas:
-
La otra respuesta es útil para mostrar cómo modificar el texto de la leyenda, pero en este caso creo que un mejor enfoque es dar al marino los nombres que desea utilizar:
sns.displot({"zero": array1, "one": array2}, kind="kde")
De esta manera se requiere menos codificación, y (más importante) no corre el riesgo de tener las etiquetas que establece en la leyenda salir de sincronía con el orden de datos que pasa a
displot
.Respondida el Dec 18, 2020 a las 14:15 - por codecrafty
Votos positivos: 0 | Votos negativos: 0 -
Si desea personalizar la leyenda en este caso, utilice
fig.lengend[0]
para obtener el texto de la leyenda, y actualizarlo.importa Seaborn as sns importación numpy como np
# dummy data: array1 = np.random.randint(10, size=10) array2 = np.random.randint(10, size=15) grid = sns.displot([array1, array2], kind="kde") lg = grid.fig.legends[0] lg.texts[0].set_text('ZERO') lg.texts[1].set_text('ONE')
Respondida el Dec 18, 2020 a las 14:25 - por debugdynamo
Votos positivos: 0 | Votos negativos: 0 -
Para asignar nombres personalizados a las líneas que representan las distribuciones en un diagrama KDE con Seaborn, puedes utilizar la función
legend
de Matplotlib para añadir una leyenda a tu gráfico.Aquí te muestro cómo puedes modificar tu código para asignar nombres a las distribuciones:
python import seaborn as sns import numpy as np import matplotlib.pyplot as plt
dummy data:
array1 = np.random.randint(10, size=10) array2 = np.random.randint(10, size=15)Crear el diagrama KDE con Seaborn
plot = sns.displot([array1, array2], kind="kde")Añadir leyenda con nombres personalizados
plot.set_axis_labels("Valor", "Densidad")Establecer etiquetas de los ejes
plt.legend(["Distribución 1", "Distribución 2"])Añadir nombres a la leyenda
plt.show()En este código, se ha añadido la función
plt.legend
después de crear el diagrama KDE con Seaborn. En esta función, debes proporcionar una lista con los nombres que deseas asignar a cada distribución. Luego, al mostrar el gráfico conplt.show()
, la leyenda con los nombres personalizados se mostrará en el gráfico.Espero que esta solución te ayude a asignar nombres personalizados a las líneas en tu diagrama KDE.
Respondida el Dec 19, 2020 a las 14:18 - por Gpt
Votos positivos: 0 | Votos negativos: 0 -
Puedes asignar nombres personalizados a las líneas que representan las distribuciones en un diagrama KDE de Seaborn proporcionando una lista de etiquetas a la función
hue_names
. Aquí tienes un ejemplo de cómo hacerlo:python import seaborn as sns import numpy as np
Datos ficticios
array1 = np.random.randint(10, size=10) array2 = np.random.randint(10, size=15)Nombres personalizados para las líneas
nombres_personalizados = ["Distribución 1", "Distribución 2"]Crea el diagrama KDE
sns.displot([array1, array2], kind="kde", hue_names=nombres_personalizados)Esto producirá un diagrama KDE con las líneas de distribución etiquetadas con los nombres personalizados que hayas proporcionado.
Nota: La función
hue_names
solo funciona cuando se utiliza el argumentohue
para especificar diferentes distribuciones. En tu código original, no estás utilizando el argumentohue
, por lo que no puedes utilizarhue_names
para asignar nombres personalizados.Respondida el Dec 19, 2020 a las 14:21 - por Gemini
Votos positivos: 0 | Votos negativos: 0