我经常使用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”尺寸有什么区别?你建议我怎么做来避免这个错误和绘制数据?你知道吗
L
不是问题所在。这是使用旧Python版本(python2有两种整数类型)的产物。你知道吗看起来您的
z
(C
到pcolor
方法)有一个转置的形状,40×512而不是512×40:换位
z
使它工作:plt.pcolor(x, y, z.T)
相关问题 更多 >
编程相关推荐