- 已关闭。**此问题需要debugging details。当前不接受答案。
编辑问题以包含desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答问题。
2天前关闭。
这篇文章是昨天编辑并提交审查的。
Improve this question
我有一个向量X,它具有相应的权重Y。目前,我正在用直方图绘制数据,它将每个条柱内的所有权重相加。我希望将Y重建为X的函数。为此,我希望绘制每个条柱内的平均权重。例如,通过将每个bin的值除以该bin中的数据点数量。在Python中是否有简单的方法来绘制每个bin中的平均权重,而不是仅仅画出每个区间内所有权重的总和?
例如代码,考虑数据集
X = np.array([1., 1.5, 1.4, 2., 2.5, 2.1])
Y = np.array([5, 7, 6.5, 8, 9, 8.1])
plt.hist(X, weights = Y, bins = 4)
如果使用Y作为权重对这些数据进行plt. hist,那么它只是将每个bin内的权重相加。但是,由于我试图将Y重建为X的函数,因此我想知道给定X的Y的平均值。
2条答案
按热度按时间roejwanj1#
最后,我使用numpy的binned_statistic()生成了bin内数据的均值,并绘制了这些均值的plt.图,其中x轴沿着的每个点都是bin的“平均”位置。
感谢@paime的建议!我最终使用了binned_statistic,而不是他们建议的调用numpy.histogram两次,因为对于非常大的数据集,生成直方图可能需要很长时间。
sd2nnvve2#
如果我没理解错的话,那么seaborn histplot可能会对你有所帮助。它有一个影响y轴的选项
stat
。在你的例子中,尝试stat='probability'
或stat='percent'
来查看与你的数据相关的bin的部分。之后,要以百分比的形式显示y轴,请查看此帖子