我想使用 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}
理想情况下,我想将这个预先计算的数据传递给一个直方图函数,让我可以控制 bin 宽度、绘图范围等,就好像我传递了原始数据一样。作为一种解决方法,我将我的计数扩展到原始数据:
data = list(chain.from_iterable(repeat(value, count)
for (value, count) in counted_data.iteritems()))
counted_data
当包含数百万个数据点的计数时,这是低效的。
有没有更简单的方法可以使用 Matplotlib 从我预先计算的数据中生成直方图?
或者,如果只对已预先分箱的条形图数据进行最简单的处理,是否有一种方便的方法可以将我的每项计数“汇总”到分箱计数中?