You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何去除seaborn散点图上下方的多余空白区域

解决seaborn分类散点图y轴上下多余空白的方法

当y轴为分类变量、刻度较多时,seaborn的scatterplot默认会在y轴上下两端预留填充空间,就会出现你观察到的大面积空白,可通过以下两种方法解决:

  • 方法一:使用autoscale方法自动收紧y轴范围
    无需手动计算刻度范围,自动适配所有数据位置去除空白,在plt.show()之前添加一行代码即可:
    plt.autoscale(axis='y', tight=True)
    
  • 方法二:手动设置y轴的上下限
    分类变量的刻度对应索引范围是0到「分类数量-1」,把y轴范围调整到刚好覆盖最上、最下分类的半格位置即可,适合需要自定义范围的场景,在plt.show()前添加:
    plt.ylim(-0.5, len(data['abbrev'])-0.5)
    

修改后的完整可运行代码:

import matplotlib.pyplot as plt
import seaborn as sns

data = sns.load_dataset("car_crashes")

plt.figure(figsize=(5, 15))
sns.set_style("whitegrid")
sns.scatterplot(
    data=data,
    x='alcohol',
    y='abbrev',
    size='ins_losses',
    legend=False,
)
# 任选上述两种方法的其中一行即可
plt.autoscale(axis='y', tight=True)
# 或者使用 plt.ylim(-0.5, len(data['abbrev'])-0.5)
plt.show()

内容的提问来源于stack exchange,提问作者Wuff

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 10:12:01