首页 > 解决方案 > Seaborn histplot 使用奇怪的 y 轴限制?

问题描述

我正在遍历我的 df 的所有列以绘制它们的密度,以查看我是否需要以及如何转换/规范化我的数据。我正在使用 Seaborn 和这段代码:

fig, axes = plt.subplots(nrows=n_rows, ncols=n_cols, figsize=(16,40))
fig.tight_layout() #othwerwise the plots overlapped each other and I couldn't see the column names

for i, column in enumerate(df.columns):
    sns.histplot(df[column],ax=axes[i//n_cols,i%n_cols], kde=True, legend=True, fmt='g')

这会产生一个基本正常的图形,但是在某些情况下 y 轴的缩放比例太大了:

在此处输入图像描述

城市 3 和 4 还不错,但是,Count城市 4 的最高值在 200 左右,但地块比例为 y 直到 10 000,这使得数据难以解释。x 轴也超出了应有的位置,因为最高成本约为 1000000,但情节一直持续到 25000000。当我City 4单独绘制并强制 aylim为 200 和xlim1000000 时,我得到了一个更容易理解的情节:

在此处输入图像描述

为什么 y 轴(实际上也是 x 轴)缩放得如此奇怪,我怎样才能改变我的代码来缩小它,这样我就不会得到ylim比实际显示的数据高得多的数据?

谢谢!

标签: pythonplotseaborn

解决方案


设置shared_yaxisFalse

这将使子图绘制在相应数据的各自最大点处。

例子:

fig, axes = plt.subplots(nrows=n_rows, ncols=n_cols, figsize=(16,40), sharey=False)

推荐阅读