【发布时间】:2017-04-21 09:13:33
【问题描述】:
我想创建一个二维直方图,在每个 bin 中,该 bin 表示的值显示在给定 bin 的中心。例如,大小为 5x5 的 hist2d 在最终图中将有 25 个值。这对 PyROOT 来说是可行的,但我需要在这里使用 matplotlib/pyplot。
已根据第一个答案尝试了以下方法:
fig, ax = plt.subplots()
ax.set_aspect("equal")
hist, xbins, ybins, im = ax.hist2d(x, y, bins=(4, [1,2,3,5,10,20]))
ax.text(xbins[1]+0.5,ybins[1]+0.5, "HA", color="w", ha="center", va="center", fontweight="bold")
img = StringIO.StringIO()
plt.savefig(img, format='svg')
img.seek(0)
print("%html <div style='width:500px'>" + img.getvalue() + "</div>")
没有任何错误消息,但“HA”根本不会显示在第一个 bin 中。我在 Zeppelin 中对此进行编程,因此我需要从缓冲区中获取 img ...
【问题讨论】:
-
你能用seaborn吗?
-
通过以这种方式定义的箱,我实现了箱的非恒定间隔。这工作得很好。这意味着例如y 方向的第三个 bin 取范围 3-5。
-
seaborn 可以胜任,除了非常量的分箱。
标签: python matplotlib histogram