gpt4 book ai didi

python - 在 hist2d (matplotlib) 中的每个 bin 中打印值

转载 作者:行者123 更新时间:2023-12-03 20:22:59 27 4
gpt4 key购买 nike

我想创建一个 2d 直方图,其中在每个 bin 中,该 bin 表示的值显示在该给定 bin 的中心。例如 hist2d大小为 5x5 的最终图形中有 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 ...

最佳答案

注释 hist2d情节,就像任何其他情节一样,您可以使用 matplotlib 的 text方法。要注释的值由返回的直方图给出。注释的位置由直方图边缘(加上 bin 宽度的一半)给出。然后,您可以遍历所有 bin 并在每个 bin 中放置一个文本。

import matplotlib.pyplot as plt
import numpy as np; np.random.seed(1)

x = np.random.poisson(size=(160))
y = np.random.poisson(size=(160))

fig, ax = plt.subplots()
ax.set_aspect("equal")
hist, xbins, ybins, im = ax.hist2d(x,y, bins=range(6))

for i in range(len(ybins)-1):
for j in range(len(xbins)-1):
ax.text(xbins[j]+0.5,ybins[i]+0.5, hist.T[i,j],
color="w", ha="center", va="center", fontweight="bold")

plt.show()

enter image description here

如果只需要一个注释,例如下列
ax.text(xbins[1]+0.5,ybins[1]+0.5, "HA", 
color="w", ha="center", va="center", fontweight="bold")

会产生

enter image description here

关于python - 在 hist2d (matplotlib) 中的每个 bin 中打印值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43538581/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com