Python 有人能解释一下matplotlib pcolormesh的怪癖吗?

Python 有人能解释一下matplotlib pcolormesh的怪癖吗?,python,matplotlib,Python,Matplotlib,使用带有x和y数据的pcolormesh打印阵列将删除一行数据 要说明我的意思,请参见以下内容: data = np.random.random([5,5]) plt.pcolormesh(data) 此5x5网格中的结果: 但是如果我想为这样的数据定义x轴和y轴,pcolormesh会创建一个4x4网格,上面和右边的行会丢失 plt.pcolormesh(range(5), range(5), data) 为了得到完整的5x5图,我必须 plt.pcolormesh(range(6),

使用带有x和y数据的pcolormesh打印阵列将删除一行数据

要说明我的意思,请参见以下内容:

data = np.random.random([5,5])
plt.pcolormesh(data)
此5x5网格中的结果:

但是如果我想为这样的数据定义x轴和y轴,pcolormesh会创建一个4x4网格,上面和右边的行会丢失

plt.pcolormesh(range(5), range(5), data)

为了得到完整的5x5图,我必须

plt.pcolormesh(range(6), range(6), data)


这只是一种怪癖吗?或者有人能解释为什么pcolormesh会这样做吗?

您看到的行为是预期的。
pcolor(X,Y,C,**kwargs)

理想情况下,X和Y的尺寸应比C的尺寸大一倍;如果尺寸相同,则C的最后一行和最后一列将被忽略

当然,
pcolormesh
也是如此

我不确定这是否是讨论这种行为是否是“怪癖”的地方,但其基本思想是网格定义了彩色面的边缘。就像在数字行中一样,您有
n
数字和
n-1
间隔

实际上,通过栅格定义边是有意义的,因为
pcolormesh
还允许使用间距不等的栅格,否则无法定义