如何用条形图来缩放Seaborn的y轴?

时间:2014-11-19 14:19:16

标签: python seaborn

我正在使用factorplot(kind="bar")

如何缩放y轴,例如使用对数刻度?

我试图修改情节的轴,但这总是以某种方式弄乱了条形图,所以请先尝试你的解决方案以确保它真的有效。

3 个答案:

答案 0 :(得分:12)

调用factorplot后,您可以使用Matplotlib命令。 例如:

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()

enter image description here

答案 1 :(得分:10)

考虑到您提出的问题barplot我认为我会为该类型的情节添加解决方案,因为它与上面的factorplot不同。

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')

enter image description here

答案 2 :(得分:4)

如果您在使用之前的解决方案设置日志比例时遇到消失的问题,请尝试将log=True添加到seaborn函数调用中。 (我对其他答案的评论缺乏声誉)。

使用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)

使用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)