数据处于小区间时直方图为空

问题描述 投票:0回答:1

我有一些 1-x 区间内的数据 < data < 1+x where x is around 5*10^(-7).
部分数据:

[1.0000000478958904, 1.0000000478515068, 1.0000000480679452, 1.0000000477731508, 1.0000000479978082, 1.000000047790137, 1.0000000478526028, 1.0000000479145206, 1.000000047740274,...]

我尝试使用 matplotlib 将这些数据绘制为直方图,并在增加 bin 数量时得到一个空图。 例如,当我将 bin 数量定义为 100 时,我会得到一个大约 1 的单线直方图,但是当我将 bin 数量设置为 1000 时,我会得到一个空直方图。

fig, ax = plt.subplots()
n, bins, patches = ax.hist(data, 100)
plt.show()

我尝试使用对数刻度,但显然它不起作用。
如果有帮助的话,数据的长度是 5000 - 尝试将其设置为垃圾箱的数量,但我仍然得到一个空图。

我如何缩放这些数据以便在最好地代表真实数据的同时绘制它?

python matplotlib histogram
1个回答
0
投票

您还可以使用

bins
参数来设置每个 bin 的特定边界,而不仅仅是 bin 的数量。来自Matplotlib 文档

如果 bins 是一个序列,则定义 bin 边缘,包括第一个 bin 的左边缘和最后一个 bin 的右边缘;在这种情况下,垃圾箱的间距可能不均匀。

因此,您可以根据数据的最大值和最小值创建数据箱:

import numpy as np

nr_bins = 10
bin_arr = np.linspace(min(data), max(data), nr_bins, endpoint=True)

然后:

ax.hist(data, bins=bin_arr)
© www.soinside.com 2019 - 2024. All rights reserved.