我正在尝试以颜色作为“第三维”的直方图。
这是我的代码:
import numpy as np
import matplotlib.pyplot as plt
x=[1,2,3,4,5]
y=[4,4,4,4,4]
z=[1,2,3,4,5]
x=np.array(x)
y=np.array(y)
z=np.array(z)
hist, xedges, yedges = np.histogram2d(x, y, weights=z)
counts, _, _ = np.histogram2d(x, y, bins=(xedges, yedges))
average = hist/counts
plt.pcolormesh(average)
plt.colorbar()
我的结果
我对为什么颜色框未正确对应x和y数组感到困惑?例如,黄色框应垂直位于5,而不是10。
答案 0 :(得分:0)
np.histogram2d
默认为bins=10
。也就是说,您在每个方向上都有10
个垃圾箱。因此,您的xedges,yedges
的长度为11,而hist
和count
的数组为11x11
。因此,pcolormesh
显示了11x11
图片,y轴的最高值10
对应于xedges[-1]
的{{1}}。