【问题标题】:Empty histogram in matplotlib - data in small intervalmatplotlib 中的空直方图 - 小区间的数据
【发布时间】:2021-11-20 06:29:24
【问题描述】:

我在 1-x 部分数据:[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


    【解决方案1】:

    您还可以使用bins 参数来设置每个 bin 的特定范围,而不仅仅是设置 bin 的数量。来自Matplotlib docs

    如果bins是一个序列,它定义了bin边缘,包括第一个bin的左边缘和最后一个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)
    

    【讨论】:

    • 仍然给我一个单线直方图或一个空图
    猜你喜欢
    • 2011-10-22
    • 1970-01-01
    • 2020-01-01
    • 2015-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-01
    • 2020-12-11
    相关资源
    最近更新 更多