我想使用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