matplotlib.pyplot.pcolor错误消息:缺少一个L

2024-10-03 21:25:17 发布

您现在位置:Python中文网/ 问答频道 /正文

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

“40L”尺寸和没有L尺寸的“40”尺寸有什么区别?你建议我怎么做来避免这个错误和绘制数据?你知道吗


Tags: inpymatplotliblibpackages错误linesite
1条回答
网友
1楼 · 发布于 2024-10-03 21:25:17

L不是问题所在。这是使用旧Python版本(python2有两种整数类型)的产物。你知道吗

看起来您的zCpcolor方法)有一个转置的形状,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)

相关问题 更多 >