Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python matplotlib.pyplot.pcolor不匹配错误消息:缺少L_Python_Matplotlib - Fatal编程技术网

Python matplotlib.pyplot.pcolor不匹配错误消息:缺少L

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

我经常使用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( 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)