¿Cómo escalar el eje y de Seaborn con un gráfico de barras?

Estoy usando factorplot(kind="bar") .

¿Cómo puedo escalar el eje y, por ejemplo, con log-scale?

Intenté juguetear con los ejes de la ttwig, pero eso siempre estropeó la ttwig de la barra de una manera u otra, así que primero prueba tu solución para asegurarte de que realmente funciona.

Puede usar los comandos de Matplotlib después de llamar a factorplot . Por ejemplo:

 import seaborn as sns import matplotlib.pyplot as plt sns.set(style="whitegrid") titanic = sns.load_dataset("titanic") g = sns.factorplot("class", "survived", "sex", data=titanic, kind="bar", size=6, palette="muted", legend=False) g.fig.get_axes()[0].set_yscale('log') plt.show() 

introduzca la descripción de la imagen aquí

Teniendo en cuenta que la pregunta menciona el barplot , pensé que agregaría una solución para ese tipo de gráfico también, ya que difiere del factorplot anterior.

 import seaborn as sns import matplotlib.pyplot as plt sns.set(style="whitegrid") titanic = sns.load_dataset("titanic") g = sns.barplot(x="class", y="survived", hue="sex", data=titanic, palette="muted") g.set_yscale('log') 

introduzca la descripción de la imagen aquí

Si está enfrentando el problema de la desaparición de las barras al configurar la escala de registro utilizando las soluciones anteriores, intente agregar log=True a la llamada de función marítima. (Me falta reputación para comentar las otras respuestas).

Usando sns.factorplot :

 import seaborn as sns import matplotlib.pyplot as plt sns.set(style="whitegrid") titanic = sns.load_dataset("titanic") g = sns.factorplot(x="class", y="survived", hue="sex", kind='bar', data=titanic, palette="muted", log=True) g.ax.set_ylim(0.05, 1) 

Utilizando sns.barplot :

 import seaborn as sns import matplotlib.pyplot as plt sns.set(style="whitegrid") titanic = sns.load_dataset("titanic") g = sns.barplot(x="class", y="survived", hue="sex", data=titanic, palette="muted", log=True) g.set_ylim(0.05, 1)