我想使用Matplotlib繪製預先計數的數據上的直方圖。例如,說我有原始數據從Matplotlib中的預先計數數據繪製直方圖
data = [1, 2, 2, 3, 4, 5, 5, 5, 5, 6, 10]
鑑於這個數據,我可以使用
pylab.hist(data, bins=[...])
繪製直方圖。
在我的情況下,該數據已經預先計算並表示爲詞典:
counted_data = {1: 1, 2: 2, 3: 1, 4: 1, 5: 4, 6: 1, 10: 1}
理想情況下,我想這種預計數據傳遞給直方圖功能,讓我控制箱寬度,繪圖範圍等,就好像我已經通過它的原始數據。作爲一種變通方法,我擴大我數到的原始數據:
data = list(chain.from_iterable(repeat(value, count)
for (value, count) in counted_data.iteritems()))
這是低效的,當counted_data
包含計數百萬個數據點。
有沒有更簡單的方法來使用Matplotlib從我的預先計數的數據產生直方圖?
或者,如果最簡單的方法是對已預先分檔的數據進行條形圖繪製,是否有一種方便的方法將我的每件商品計數「彙總」爲分箱計數?
一點題外話:要擴展計數到的原始數據,你也可以使用'Counter'類及其元素()方法: '從收藏導入反' 'c = Counter(counts_data)' 'data = list(c.elements())' – fireboot