直方图和pcolormesh的对齐问题

时间:2019-06-19 17:58:18

标签: python numpy matplotlib

我正在尝试以颜色作为“第三维”的直方图。

这是我的代码:

    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()

我的结果

My results

我对为什么颜色框未正确对应x和y数组感到困惑?例如,黄色框应垂直位于5,而​​不是10。

1 个答案:

答案 0 :(得分:0)

np.histogram2d默认为bins=10。也就是说,您在每个方向上都有10个垃圾箱。因此,您的xedges,yedges的长度为11,而histcount的数组为11x11。因此,pcolormesh显示了11x11图片,y轴的最高值10对应于xedges[-1]的{​​{1}}。