我有一些数据phi,我想用pcolormesh绘制它。
我的第一种方法是:

plt.figure()
plt.colormesh(phi)
plt.show()


产生:



好。现在我只想稍微调整一下轴,所以我
使用meshgrid:

plt.figure()
kk = np.arange(0,phi.shape[1])
gg = np.arange(-phi.shaoe[0]//2 +1 , phi.shape[0]//2 +1,1)
GG, KK = np.meshgrid(gg,kk)
plt.pcolormesh(KK,GG,phi.T)
plt.show()


现在我得到以下信息:



您可以清楚地看到,顶部的条纹被切掉了!!由于无法更改phi函数,因此无法解释这种现象!我刚刚将轴数据添加到网格中!这是什么错误,我该如何解决!

PS:如果要重现该错误,只需使用相对于与y轴平行的某个轴对称的矩阵。

最佳答案

pcolor的文档:http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.pcolor


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


因此,您需要创建两个具有多行和一列的数组:

import pylab as pl
import numpy as np

phi = np.zeros((20, 30))
phi[0, :] = 1
phi[-1, :] = 2

kk = np.arange(0,phi.shape[1]+1)
gg = np.arange(-phi.shape[0]//2 +1 , phi.shape[0]//2 + 2)
GG, KK = np.meshgrid(gg,kk)
pl.pcolormesh(KK,GG,phi.T)

关于python - 奇怪的行为:pcolormesh和meshgrid(简单),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24494879/

10-12 23:30