直方图箱的大小等于1天 - pyplot

时间:2017-07-14 14:05:59

标签: python-3.x matplotlib statistics histogram

对于0岁的汽车,我有以天为单位的交货时间列表。该列表包含近20,000个交付日,并且重复多天。我的问题是我如何得到直方图以显示bin大小为1天。我已经将箱子大小设置为以下独特交货日期:  len(set(list))

但是当我生成直方图时,0个交付日的频率超过5000,但是当我list.count(0)时,它返回4500.

2 个答案:

答案 0 :(得分:0)

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

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

  1. 制作一个新的唯一身份_天数=设置(天数列表)
  2. 在unique_days
  3. 中迭代每个值日
  4. 在当天,设置栏中的栏的高度(或箱的大小) 直方图等于days_list.count(天)。这会告诉你这个号码 当天出现的交货日数“天”值出现在 days_list交货时间列表。
  5. 这有意义吗?

    如果问题不在于你手动计算直方图错误但是pyplot做错了什么,那么如果你包含一些代码来说明使用pyplot会有所帮助。

答案 1 :(得分:0)

垃圾箱的数量取决于最大可能天数的天数。

Say 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)