所以我尝试使用pcolormesh绘制不规则间隔的数据。x数据表示标签,而y数组标识测量的开始时间(假设秒)。因此,我希望垂直箱Map到开始时间[1,2,5,6,12,13],并适当地对箱进行着色。但我得到了完全不同的东西(我无法理解):
cmap = plt.cm.jet
fig, ax = plt.subplots(figsize=(10,8))
cax = ax.pcolormesh([20,30,40], [1,2,5,6,12,13],
np.array([[1,2,5], #1
[0,2,0], #2
[1,2,3], #5
[2,2,0], #6
[3,2,3], #12
[4,2,0]]), #13
cmap=cmap, alpha=1)
ax.set_xticks(range(20,41,10))
ax.set_yticks(range(1,15))
cbar = fig.colorbar(cax)
cbar.ax.tick_params(labelsize=12)
字符串
此图中的结果:
x1c 0d1x的数据
这是怎么回事啊?我希望左下角的第一个条目从(20,1)到(30,2)--如果你把标签居中的话,它会这样做……但是沿着y轴向上(根据文档)应该从(20,2)到(30,5),而实际上没有。下一个应该从(5,20)开始,然后到(6,30),但还是不行!?!?我如何获得数据(颜色)以匹配我的x-y数组的边界???
真实的数据也在x中展示了这个问题。所以我一定没有正确使用它。
1条答案
按热度按时间3mpgtkmj1#
为X和Y提供的数字不仅仅是矩形的“上边缘”。数字是成对取的。因此,第一个括号的跨度是1到2,而不是0到1。你没有任何东西覆盖Y从0到1。
如果您将其更改为以下内容,则显示将变为您所期望的内容:
字符串
输出: