如何去除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
相关产品推荐
相关产品推荐

