Python matplotlib.pyplot.pcolor不匹配错误消息:缺少L
我经常使用matplotlib的pcolor方法,但它有时会给我带来一些我不理解的尺寸不匹配错误。这里是一个示例代码Python matplotlib.pyplot.pcolor不匹配错误消息:缺少L,python,matplotlib,Python,Matplotlib,我经常使用matplotlib的pcolor方法,但它有时会给我带来一些我不理解的尺寸不匹配错误。这里是一个示例代码 import numpy as np import matplotlib.pyplot as plt idx1 = 180 idx2 = 220 Range1 = range(idx1, idx2, 1) Range2 = range(512) z = np.random.randn( len( Range1 ), 512) x, y = np.meshgrid( Rang
import numpy as np
import matplotlib.pyplot as plt
idx1 = 180
idx2 = 220
Range1 = range(idx1, idx2, 1)
Range2 = range(512)
z = np.random.randn( len( Range1 ), 512)
x, y = np.meshgrid( Range1 , Range2)
plt.figure()
plt.pcolor(x, y, z)
plt.show()
由于您可以自己尝试,不匹配错误为
Traceback (most recent call last):
File "<ipython-input-1-7d51fd1b710e>", line 13, in <module>
plt.pcolor(x, y, z)
File "C:\Users\fedel\Anaconda2c\lib\site-packages\matplotlib\pyplot.py", line 3083, in pcolor
ret = ax.pcolor(*args, **kwargs)
File "C:\Users\fedel\Anaconda2c\lib\site-packages\matplotlib\__init__.py", line 1818, in inner
return func(ax, *args, **kwargs)
File "C:\Users\fedel\Anaconda2c\lib\site-packages\matplotlib\axes\_axes.py", line 5168, in pcolor
X, Y, C = self._pcolorargs('pcolor', *args, allmatch=False)
File "C:\Users\fedel\Anaconda2c\lib\site-packages\matplotlib\axes\_axes.py", line 4996, in _pcolorargs
C.shape, Nx, Ny, funcname))
TypeError: Dimensions of C (40L, 512L) are incompatible with X (40) and/or Y (512); see help(pcolor)
回溯(最近一次呼叫最后一次):
文件“”,第13行,在
plt.pcolor(x,y,z)
文件“C:\Users\fedel\Anaconda2c\lib\site packages\matplotlib\pyplot.py”,第3083行,pcolor格式
ret=ax.pcolor(*args,**kwargs)
文件“C:\Users\fedel\Anaconda2c\lib\site packages\matplotlib\\uuuu init\uuuu.py”,第1818行,在内部
返回函数(ax,*args,**kwargs)
文件“C:\Users\fedel\Anaconda2c\lib\site packages\matplotlib\axes\u axes.py”,第5168行,pcolor格式
十、 Y,C=self.\u pcolorargs('pcolor',*args,allmatch=False)
文件“C:\Users\fedel\Anaconda2c\lib\site packages\matplotlib\axes\\u axes.py”,第4996行,在pcolorargs中
C.shape,Nx,Ny,funcname)
类型错误:C(40L,512L)的尺寸与X(40)和/或Y(512)不兼容;请参阅帮助(pcolor)
“40L”尺寸和没有L尺寸的“40”尺寸之间有什么区别?您建议我如何避免这个错误并绘制数据?问题不在于
L
。这是使用旧Python版本的产物(Python 2有两种整数类型)
看起来您的z
(C
到pcolor
方法)具有转置形状,即40×512而不是512×40:
for a in [x, y, z]:
print(a.shape)
# (512, 40)
# (512, 40)
# (40, 512)
变换z
使其工作:plt.pcolor(x,y,z.T)