使用带有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的怪癖吗?还是有人可以解释为什么pcolormesh如此行为的原因?
最佳答案
您看到的行为是预期的。 pcolor documentation表示pcolor(X, Y, C, **kwargs)
:
理想情况下,X和Y的尺寸应比C的尺寸大一;如果尺寸相同,则将忽略C的最后一行和最后一列。
对于pcolormesh
当然也是如此。
我不确定这是否是讨论这种行为是否是“怪癖”的地方,但是其基本思想是网格定义了彩色面孔的边缘。就像在数字行上一样,您之间有n
个数字和n-1
个间隔。
通过网格定义边缘实际上是有意义的,因为pcolormesh
还允许不等间距的网格,否则将无法定义网格。
关于python - 有人可以解释这个matplotlib pcolormesh怪癖吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44526052/