我喜欢将我的直方图绘制成这样:
data = [-0.5, 0.5, 0.5, 0.5,
1.5, 2.1, 2.2, 2.3, 2.4, 2.5, 3.1, 3.2]
plt.hist(data, bins=5, range=[-1, 4], histtype='step')
当我有一些比内存更大的输入数据时,我需要逐块填充直方图。例如:
H, bins = np.histogram([], bins=5, range=[-1, 4])
for data in a_lot_of_input_files:
H += np.histogram(data, bins=5, range=[-1, 4])[0]
但问题始终是:“我该如何重新绘制这个H
,使其看起来与以前的matplotlib版本完全相同。”
我想出的解决方案如下:
plt.plot(bins, np.insert(H, 0, H[0]), '-', drawstyle='steps')
然而,两种结果看起来并不相同,而且为了绘制它而创建 H
的副本感觉也不太好。
有没有一些优雅的解决方案我所忽略的?(我还没有尝试使用 plt.bar
,因为当我们想要比较直方图时,条形图显示效果并不好)
plt.hist
зљ„жєђд»Јз ЃжќҐеЏ–еѕ—дёЂдє›иї›е±•пјљдЅ дјљеЏ‘зЋ°й‡Њйќўжњ‰еѕ€е¤љйЂ»иѕ‘пјЊе› ж¤е¦‚жћњдёЌе¤Ќе€¶иї™дє›йЂ»иѕ‘пјЊдЅ еѕ€йљѕзІѕзЎ®ењ°е¤Ќе€¶иѕ“е‡єгЂ‚ - jakevdphist, bin_edges = np.histogram(data, range=(-1, 4), bins=5)
plt.bar(bin_edges[:-1], hist, width=np.diff(bin_edges), align='edge')
plt.hist(data, range=(-1, 4), bins=5)
- Zaus