Python seaborn distplot的权重选项?

Python seaborn distplot的权重选项?,python,matplotlib,histogram,seaborn,Python,Matplotlib,Histogram,Seaborn,我想在seaborn distplot中有一个权重选项,类似于numpy直方图中的权重选项。如果没有此选项,唯一的选择是将权重应用于输入数组,这可能会导致不切实际的大小(和时间)。您可以通过使用hist_kws参数将权重传递给基础matplotlib的直方图函数来提供权重,如下所示: sns.distplot(..., hist_kws={'weights': your weights array}, ...) 但是请注意,权重将只传递给基础直方图;kde和distplot的拟合功能均不受影响

我想在seaborn distplot中有一个权重选项,类似于numpy直方图中的权重选项。如果没有此选项,唯一的选择是将权重应用于输入数组,这可能会导致不切实际的大小(和时间)。

您可以通过使用
hist_kws
参数将权重传递给基础matplotlib的直方图函数来提供权重,如下所示:

sns.distplot(..., hist_kws={'weights': your weights array}, ...)

但是请注意,权重将只传递给基础直方图;kde和
distplot
的拟合功能均不受影响

正如@vlasisla在他们的回答中已经提到的那样,权重应该通过关键字参数
hist_kws
提供,以便将它们传递给mathpolotlib的
hist
函数。不过,除非同时禁用
kde
(内核密度估计)选项,否则这不会产生任何效果。该代码实际上会产生预期效果:

sns.distplot(x,hist_kws={'weights':x_weights},kde=False)

为了理解为什么不允许权重和KDE,请考虑下面的例子,其中<代码> xySuths被计算为<代码> xyBoosivsNP.OnthyLoad(x)/LeN(x)< /C> >以便所有容器的高度和为1:

#从正态分布生成1000个样本
np.随机种子(8362)
x=np.随机.正常(尺寸=1000)
#计算重量
x_权重=np。类(x)/len(x)
#图1-使用重量
distplot(x,hist_kws={'weights':x_weights},kde=False)
#图2-kde的默认绘图
sns.distplot(x)


在图1中,我们提供了带权重的
dist
函数,因此在该图中,所有箱子的高度总和为1。在图2中,
dist
的默认行为被启用,因此KDE函数下的区域总和为1,相应地标准化了箱子的高度。现在很容易看出,在提供权重的情况下绘制KDE确实没有多大意义。

或者更好的是,一个numpy直方图输入参数