【发布时间】:2021-01-17 04:54:18
【问题描述】:
当使用来自 Matplotlib 的 hist() 创建直方图时,数据会这样落入 bin 中:
lb ≤ x < ub。我如何强制它表现得像这样:lb < x ≤ ub?
此外,与 Excel 相比,频率表被移动了一个 bin,这对我的目的产生了不准确的测量结果。使用该表作为参考,我如何强制 hist() 使 28 到 30 之间的值落在 bin 30 而不是 bin 25 中?同样,值 23.5 在 Python 中的 bin 20 中下降,因为 bin 20 = 20 ≤ x
data = np.array([23.5, 28, 29, 29, 29.5, 29.5, 30, 30, 30])
bins = np.array([20, 25, 30])
# Excel 1, 8
# Python 1, 5
【问题讨论】:
-
你用什么来计算的?我刚刚检查了我的机器,调用
plt.hist(a, bins=[20, 25, 30])会产生两个计数为 [1, 8] 的 bin。 -
请不要发布代码、数据或 Tracebacks 的图像。将其复制并粘贴为文本,然后将其格式化为代码(选择它并输入
ctrl-k)...Discourage screenshots of code and/or errors -
how do I force hist() to...查看 Matplotlib 源码;复制此功能并将其放入您的项目中;修改它来做你想做的事。?或者编写自己的 hist 函数。 -
也许你可以利用它的一个或多个参数来捏造结果 - matplotlib.org/3.2.1/api/_as_gen/matplotlib.axes.Axes.hist.html
-
@Physmatik。抱歉,我提取了结果。我的垃圾箱实际上是范围(0,200,5)。如果包含 35 个 bin,则得到 [1, 5, 3]。我可以发布所有数据和结果,但这是我的核心问题,不想成为多余。
标签: python matplotlib histogram bins