限制seaborn-distplot-KDE估计中x的范围

2024-05-17 10:11:17 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我们有一个数字介于0和1之间的数组:

arr=np.array([ 0.        ,  0.        ,  0.        ,  0.        ,  0.6934264 ,
               0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
               0.        ,  0.        ,  0.6934264 ,  0.        ,  0.6934264 ,
               0.        ,  0.        ,  0.        ,  0.        ,  0.251463  ,
               0.        ,  0.        ,  0.        ,  0.87104906,  0.251463  ,
               0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
               0.        ,  0.        ,  0.        ,  0.        ,  0.48419626,
               0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
               0.87104906,  0.        ,  0.        ,  0.251463  ,  0.48419626,
               0.        ,  0.251463  ,  0.        ,  0.        ,  0.        ,
               0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
               0.        ,  0.251463  ,  0.        ,  0.35524532,  0.        ,
               0.        ,  0.        ,  0.        ,  0.        ,  0.251463  ,
               0.251463  ,  0.        ,  0.74209813,  0.        ,  0.        ])

使用seaborn,我想绘制一个分布图:

sns.distplot(arr, hist=False)

这将给出以下数字: enter image description here

如您所见,kde估计范围从-0.20到1.10。是否可以强制估计值介于0和1之间?我做过以下的尝试,但没有成功:

sns.distplot(arr, hist=False, hist_kws={'range': (0.0, 1.0)})
sns.distplot(arr, hist=False, kde_kws={'range': (0.0, 1.0)})

第二行引发异常——range不是kde_kws的有效关键字。


Tags: falsenp分布图绘制range数字数组seaborn
2条回答

预先设置应该有助于:

plt.xlim(0, 1)
sns.distplot(arr, hist=False)

正确的方法是使用clip关键字而不是range

sns.distplot(arr, hist=False, kde_kws={'clip': (0.0, 1.0)})

将产生: enter image description here

实际上,如果只关心kde而不关心直方图,那么可以使用kdeplot函数,它将产生相同的结果:

sns.kdeplot(arr, clip=(0.0, 1.0))

相关问题 更多 >