小编典典

有人可以解释这个matplotlib pcolormesh怪癖吗?

python

使用带有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如此行为?


阅读 313

收藏
2021-01-20

共1个答案

小编典典

您看到的行为是预期的。该令pColor文件规定为
pcolor(X, Y, C, **kwargs)

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

当然也是如此pcolormesh

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

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

在此处输入图片说明

2021-01-20