yaxis上密度为Seaborn的距离图

2024-09-28 22:31:20 发布

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

我已经找到了解决办法,但没有找到一个有效的解决我的问题。我试着用密度函数绘制一个直方图,显示y轴上的密度。meanopa是标准普尔500的平均日志返回值。 我不明白的是:。在

norm_hist : bool, optional If True, the histogram height shows a density rather than a count. This is implied if a KDE or fitted density is plotted.

因为在我的例子中kde=True,所以我想知道为什么y轴上有这么多观察值。在

sns.distplot(meanopa, hist=True, kde=True, bins=20, color = 'darkblue',
             hist_kws={'edgecolor':'black'}, kde_kws={'linewidth': 4})

提前谢谢,再次感谢任何形式的支持。在

干杯!在

enter image description hereenter image description here


Tags: 函数truenorm标准is绘制直方图density
2条回答

如果您对概率密度函数不感兴趣,而是对每个bin的概率/频率感兴趣,这个概率/频率由bin中的样本数除以样本总数得出,那么您可以使用hist_kws参数的'weights'属性。将其应用于lrnzcig的示例代码

random.seed(2)
min_rescale = -0.001
max_rescale = 0.001
close2 = [min_rescale + random.random() * (max_rescale - min_rescale) for x in range(100)] 
sns.distplot(close2, hist=True, kde=False, bins=5, color = 'darkblue',
         hist_kws={'edgecolor':'black', 'weights': np.ones(len(close2))/len(close2)})

结果如下图: probabilities of Histogram bins using seaborn's distplot

请注意,结果是没有概率密度函数,相反,这些存储单元的权重总和为1,与这些存储单元的参数值无关。 但是,当您执行kde时,这是没有意义的。在

你的结果还可以。y轴不是显示直方图的值,而是表示概率密度(实际上是核密度估计值)。因为你的数字很小,所以x轴的间隔也很窄。。。实际上,从你的图中,如果你建立一个0.002 x 500的正方形来近似曲线下的总面积,那么全概率密度的结果是,正如预期的那样,大约是1。在

请注意,这是问题的可复制版本,如果您想查看概率密度的形状是如何变化的,可以使用重缩放(min_rescalemax_rescale值)。在

random.seed(2)
min_rescale = -0.001
max_rescale = 0.001
close2 = [min_rescale + random.random() * (max_rescale - min_rescale) for x in range(100)] 
sns.distplot(close2, hist=True, kde=True, bins=5, color = 'darkblue',
             hist_kws={'edgecolor':'black'}, kde_kws={'linewidth': 4})

enter image description here

相关问题 更多 >