如何使用条形图缩放Seborn的y轴

2022-02-27 00:00:00 python matplotlib seaborn bar-chart

问题描述

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

如何缩放y轴,例如使用log-scale?

我尝试修补曲线图的轴,但这总是以这样或那样的方式扰乱条形图,所以请先尝试您的解决方案以确保它确实有效。


解决方案

考虑到您的问题提到的barplot,我想我也应该为该类型的绘图添加一个解决方案,因为它与@jules中的factorplot解决方案不同。

import random
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 random
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")

相关文章