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

如何在Seaborn中限制密度曲线与直方图的显示范围

解决Seaborn Histplot中KDE曲线范围限制与显示问题

1. 限制KDE曲线的计算范围

histplot的binrange仅控制直方图柱子的显示范围,不会影响KDE曲线的计算范围。要让KDE曲线被限制在指定区间内,需通过kde_kws参数传入clip,指定KDE的截断范围,这样曲线只会在该区间内计算和绘制:

sns.histplot(data=df['error'], bins=20, binrange=(0,2), kde=True,
             kde_kws={'clip': (0, 2)})

2. 固定图表整体坐标轴范围

如果需要强制整个图表的x轴显示在目标区间,配合Matplotlib的plt.xlim()手动设置坐标轴范围,就能截断超出区间的内容:

sns.histplot(data=df['c0_right_error'], bins=40, binrange=(-2,2), kde=True, stat='density')
plt.xlim(-2, 2)

建议同时搭配kde_kws={'clip': (-2,2)},让KDE仅基于区间内的数据计算,避免曲线在区间外无意义延伸。

3. 修复KDE曲线异常偏低问题

当使用stat='density'时,若KDE曲线偏低,通常是因为计算时包含了binrange外的大量数据,拉低了整体密度。加上kde_kws={'clip': ...}后,KDE仅基于指定区间内的数据计算,就能让曲线和直方图的密度匹配。

完整示例代码:

sns.histplot(data=df['c0_right_error'], bins=40, binrange=(-2,2), kde=True, stat='density',
             kde_kws={'clip': (-2, 2)})
plt.xlim(-2, 2)
plt.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 05:58:15