我正在使用factorplot(kind="bar")
。
如何缩放y轴,例如使用对数刻度?
我试图修改情节的轴,但这总是以某种方式弄乱了条形图,所以请先尝试你的解决方案以确保它真的有效。
答案 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()
答案 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')
答案 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)