2017-07-14 64 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)