Saltar al contenido

Cambiar el ancho de las barras en el gráfico de barras creado con seaborn.factorplot

Solución:

De hecho, puedes hacerlo usando directamente los atributos de los parches con la función set_width. Sin embargo, si solo hace eso, solo modificará el ancho de los parches pero no la posición en el eje, por lo que también debe cambiar las coordenadas x.

import pylab as plt
import seaborn as sns

tips = sns.load_dataset("tips")
fig, ax = plt.subplots()

sns.barplot(data=tips, ax=ax, x="time", y="tip", hue="sex")

def change_width(ax, new_value) :
    for patch in ax.patches :
        current_width = patch.get_width()
        diff = current_width - new_value

        # we change the bar width
        patch.set_width(new_value)

        # we recenter the bar
        patch.set_x(patch.get_x() + diff * .5)

change_width(ax, .35)
plt.show()

Y aqui esta el resultado :
resultado del gráfico de barras

En mi caso, no tuve que definir una función personalizada para cambiar el ancho como se sugirió anteriormente (que por cierto no funcionó para mí ya que todas las barras estaban desalineadas). Simplemente agregué el atributo dodge=False al argumento de la función de trazado nacida en el mar y esto hizo el truco! p.ej

sns.countplot(x='x', hue="y", data=data, dodge=False);

Consulte la referencia adicional aquí: https://github.com/mwaskom/seaborn/issues/871

Mi gráfico de barras se ve ahora así:

ingrese la descripción de la imagen aquí

¡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 *