【问题标题】:Histogram bins size to equal 1 day - pyplot直方图箱大小等于 1 天 - pyplot
【发布时间】:2017-12-19 16:11:17
【问题描述】:

我有这个 0 年车龄的汽车的交货时间列表。该列表包含近 20,000 个交货天数,并且重复了许多天。我的问题是如何让直方图将 bin 大小显示为 1 天。我已通过以下方式将 bin 大小设置为唯一交货天数: len(set(list))

但是当我生成直方图时,0 交货天数的频率超过 5000,但是当我执行list.count(0) 时,它返回 4500。

【问题讨论】:

  • 如果使用pyplot.histbins 关键字可以传递array-like,它表示 bin 边缘。详情请参阅documentation

标签: python-3.x matplotlib statistics histogram


【解决方案1】:

箱的数量将由天数决定,直到最大可能的天数。

假设daylist 是您想要直方图的列表(永远不要调用列表list,因为这会覆盖具有相同名称的python 命令),您将使用该列表的最大值并创建一系列箱,例如

maxi = max(daylist)
bins = range(0, maxi)
plt.hist(daylist, bins=bins)

或者,如果你想使用 numpy,

bins = np.arange(0,np.max(daylist))
plt.hist(daylist, bins=bins)

【讨论】:

    【解决方案2】:

    正如您所指出的, len(set(list)) 是“交货天数”变量的唯一值的数量。这与 bin 大小不同。它是不同垃圾箱的数量。我会使用“bin size”来描述一个 bin 中的项目数量; “bin count”将是 bin 数量的更好名称。

    如果要生成直方图,假设原始天数列表称为 days_list,一个快速的高级方法是:

    1. 创建一个新集 unique_days = set(days_list)
    2. 在 unique_days 中迭代每个值日
    3. 对于当天,在 直方图等于 days_list.count(day)。这会告诉你号码 当前交货天数的“天”值出现在 days_list 交货时间列表。

    这有意义吗?

    如果问题不是您手动计算直方图错误,而是 pyplot 做错了什么,那么如果您包含一些有关如何使用 pyplot 的代码将会有所帮助。

    【讨论】:

      猜你喜欢
      • 2013-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-10
      • 1970-01-01
      • 2021-10-29
      相关资源
      最近更新 更多