我想绘制一个二维直方图,每行都进行归一化。我正在使用以下代码:
H, xedges, yedges = np.histogram2d(charged_zgs, zgs, weights=prescales, normed=1, range=[[0, 0.5], [0, 0.5]], bins=25)
Hmasked = np.ma.masked_where(H==0,H) # Mask pixels with a value of zero
plt.pcolormesh(xedges,yedges,Hmasked)
cbar = plt.colorbar()
cbar.ax.set_ylabel('Counts')
plt.show()
但是,normed=1
位使二重积分为 1,而我希望对每个单独的行进行标准化。
我以为我可以使用一个元组列表作为权重,我可以手动标准化它,但后来意识到参数权重必须是一维列表。
最佳答案
您可以使用 keepdims=True
避免进行所有转置:
H_norm_rows = H / H.max(axis=1, keepdims=True)
关于python - 具有归一化行的 2D 直方图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31957107/