J'utilise factorplot(kind="bar")
.
Comment mettre à l'échelle l'axe des y, par exemple avec l'échelle logarithmique?
J'ai essayé de bricoler avec les axes de l'intrigue, mais cela a toujours gâché l'intrigue des barres d'une manière ou d'une autre, alors essayez d'abord votre solution pour vous assurer qu'elle fonctionne vraiment.
Compte tenu de votre question mentionne barplot
j'ai pensé que j'ajouterais une solution pour ce type de tracé également car elle diffère de la solution de factorplot
dans @Jules.
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")
Vous pouvez utiliser les commandes Matplotlib après avoir appelé factorplot
. Par exemple:
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()
Si vous rencontrez le problème de la disparition des barres lors de la définition de l'échelle de journal à l'aide des solutions précédentes, essayez d'ajouter log=True
à l'appel de la fonction seaborn à la place. (Je manque de réputation pour commenter les autres réponses).
En utilisant 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)
En utilisant 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)