考虑到你的问题提到barplot
我想我也会为这种类型的情节添加一个解决方案,因为它不同于factorplot
在@Jules解决方案中。
import matplotlib.pyplot as plt
import seaborn as sns
sns.set(style="whitegrid")
xs = ["First", "First", "Second", "Second", "Third", "Third"]
hue = ["Female", "Male"] * 3
ys = [1988, 301, 860, 77, 13, 1]
g = sns.barplot(x=xs, y=ys, hue=hue)
g.set_yscale("log")
_ = g.set(xlabel="Class", ylabel="Survived")
如果您想使用非对数标签来标记 y 轴,您可以执行以下操作。
import matplotlib.pyplot as plt
import seaborn as sns
sns.set(style="whitegrid")
xs = ["First", "First", "Second", "Second", "Third", "Third"]
hue = ["Female", "Male"] * 3
ys = [1988, 301, 860, 77, 13, 1]
g = sns.barplot(x=xs, y=ys, hue=hue)
g.set_yscale("log")
# the non-logarithmic labels you want
ticks = [1, 10, 100, 1000]
g.set_yticks(ticks)
g.set_yticklabels(ticks)
_ = g.set(xlabel="Class", ylabel="Survived")