2017-07-14 63 views
0

我有0天的汽车交货时间列表。该清单包含近20,000天的交货日期,重复多天。我的问题是,我如何获得直方图来显示垃圾箱大小为1天。我已经设定的窗口尺寸,以独特的交货天量有: len(set(list))直方图箱大小等于1天 - pyplot

但是当我生成柱状图,0天交货频率为5000,但是当我做list.count(0)它与4500

返回
+0

如果你使用'pyplot.hist'的'bins'关键字都可以通过一个'array'状,其表示仓边缘。有关详细信息,请参见[文档](https://matplotlib.org/devdocs/api/_as_gen/matplotlib.pyplot.hist.html)。 –

回答

0

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

如果你想生成一个直方图,假设天的原始列表被称为DAYS_LIST,快速的高层次的方法是:

  1. 做了一套新的unique_days =集(DAYS_LIST)
  2. 迭代在unique_days中的每个价值日
  3. 对于当天,将 直方图中的柱的高度(或箱的大小)设置为等于days_list.count(日)。这会告诉您 days_list发货时间列表中的 乘以当天“天”值的数量。

这是否有意义?

如果问题不是你手动计算直方图错误,而是pyplot做错了什么,它会帮助你如何使用pyplot包含一些代码。

0

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

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)