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

使用Seaborn的kdeplot/displot替代废弃distplot绘制numpy数组PDF并对比

替换Seaborn弃用distplot的实现方案

你原来的distplot配置hist=False, rug=True是要实现「仅绘制核密度估计曲线 + 底部数据样本标记」的效果,以下是两种官方推荐的替换方案:

方案1:使用kdeplot(轴级函数,和原用法兼容性最高)

直接将原来的distplot替换为kdeplot即可,参数几乎完全兼容,代码如下:

import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

error = np.array([1,2,2,3,4,4,5])
error2 = np.array([3,3,4,4,4,6])
# 直接替换distplot为kdeplot即可
sns.kdeplot(error, rug=True, color='blue')
sns.kdeplot(error2, rug=True, color='red')
plt.show()

效果完全等价于你原来的实现:无直方图,仅显示两条对应颜色的PDF曲线,底部带数据点rug标记

方案2:使用displot(图级函数,更适合后续扩展需求)

displot是Seaborn新版推荐的分布绘图入口,使用整洁数据格式可以一次完成双组对比绘图,代码如下:

import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd

error = np.array([1,2,2,3,4,4,5])
error2 = np.array([3,3,4,4,4,6])
# 整理为长格式整洁数据
df = pd.DataFrame({
    'value': np.concatenate([error, error2]),
    'group': ['error']*len(error) + ['error2']*len(error2)
})
sns.displot(
    data=df,
    x='value',
    hue='group',
    kind='kde',
    rug=True,
    palette=['blue', 'red']
)
plt.show()

这种方式的优势是如果后续需要加直方图、分面、调整画布尺寸等需求,只需要修改displot的参数即可,扩展性更强

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 01:00:04