Saltar al contenido

¿Hacer que seaborn muestre una barra de colores en lugar de una leyenda cuando se usa el tono en un gráfico de barras?

Brenda, miembro de nuestro equipo, nos hizo el favor de redactar esta sección ya que controla perfectamente el tema.

Solución:

La otra respuesta es un poco hacky. Entonces, una solución más estricta, sin producir gráficos que se eliminen después, implicaría la creación manual de un ScalarMappable como entrada para la barra de colores.

import matplotlib.pyplot as plt
import seaborn as sns
titanic = sns.load_dataset("titanic")
g = titanic.groupby('pclass')
survival_rates = g['survived'].mean()
n = g.size()

norm = plt.Normalize(survival_rates.min(), survival_rates.max())
sm = plt.cm.ScalarMappable(cmap="Reds", norm=norm)
sm.set_array([])

ax = sns.barplot(x=n.index, y=n, hue=survival_rates, palette='Reds', 
                 dodge=False)

ax.set_ylabel('n passengers')
ax.get_legend().remove()
ax.figure.colorbar(sm)

plt.show()

Puedes probar esto:

import matplotlib.pyplot as plt
import seaborn as sns
titanic = sns.load_dataset("titanic")
g = titanic.groupby('pclass')
survival_rates = g['survived'].mean()
n = g.size()

plot = plt.scatter(n.index, n, c=survival_rates, cmap='Reds')
plt.clf()
plt.colorbar(plot)
ax = sns.barplot(x=n.index, y=n, hue=survival_rates, palette='Reds', dodge=False)
ax.set_ylabel('n passengers')
ax.legend_.remove()

Producción:
ingrese la descripción de la imagen aquí

Comentarios y puntuaciones del post

Recuerda algo, que tienes autorización de esclarecer tu experiencia si diste con el arreglo.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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