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

如何使用sns.distplot调整参数扩展KDE曲线的显示范围

解决方案

Seaborn绘制KDE曲线时默认会按照输入数据的取值范围裁剪曲线,即便后续设置了更宽的x轴显示范围,曲线也不会自动延伸到x轴边界,只需调整KDE相关参数即可实现预期效果。

兼容原有distplot写法的修改代码

plt.figure(figsize=(6, 4))
ax = sns.distplot(
    np.log10(df['income']), 
    kde=True, 
    hist=False, 
    rug=False, 
    # 新增clip参数指定KDE绘制范围和x轴范围一致,cut设为足够大的值保证曲线延伸到边界
    kde_kws = {"bw": 0.35, "clip": (0.7, 6.3), "cut": 10}
)
plt.xlabel('人均国民总收入(阿特拉斯法,单位:美元,2016年)')
plt.ylabel('')  
plt.title('世界银行人均国民总收入分布')
plt.xlim(0.7, 6.3)
plt.ylim(-0.05, 0.73)

参数说明

  • clip:直接限定KDE曲线的绘制区间,这里和你设置的x轴显示范围保持一致,避免曲线被默认裁剪
  • cut:控制KDE曲线超出数据极值的长度,单位为带宽的倍数,设置为足够大的数值可以保证曲线完整延伸到你指定的clip边界

如果你使用的是v0.11及以上版本的Seaborn,distplot已经被官方废弃,更推荐使用kdeplot实现相同效果,代码如下:

plt.figure(figsize=(6, 4))
ax = sns.kdeplot(
    np.log10(df['income']),
    bw_adjust=0.35,
    clip=(0.7, 6.3),
    cut=10
)
plt.xlabel('人均国民总收入(阿特拉斯法,单位:美元,2016年)')
plt.ylabel('')  
plt.title('世界银行人均国民总收入分布')
plt.xlim(0.7, 6.3)
plt.ylim(-0.05, 0.73)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 20:45:08