Python中的Pcolor数据图

时间:2017-03-09 05:28:38

标签: python arrays matplotlib contour

我正在尝试使用pcolor在python中绘制矩阵。这是我的代码,但它不起作用。你能告诉我如何绘制矩阵吗?!

Matrix = np.zeros((NumX, NumY))

for i in range(NumX):
    for j in range(NumY):
        Matrix[i][j] = Data[i*NumY+j+1]


# Set up a regular grid of interpolation points
xi = np.arange(0, NumX*1.5, 1.5)
yi = np.arange(0, NumY*1.5, 1.5)
X, Y = np.meshgrid(xi, yi)
intensity = np.array(Matrix)

plt.pcolormesh(X, Y, Matrix)
plt.colorbar()
plt.show()

这是错误:

  

TypeError:C(22,30)的尺寸与X(22)不兼容   和/或Y(30);看帮助(pcolormesh)

1 个答案:

答案 0 :(得分:2)

您需要注意数组的索引规则。 X是第二个维度,Y是第一个维度。

enter image description here

import numpy as np; np.random.seed(1) 
import matplotlib.pyplot as plt

NumX, NumY = 5,7
Data = np.random.randint(1,9,size=NumX*NumY+1)

Matrix = np.zeros((NumY, NumX))

for i in range(NumY):
    for j in range(NumX):
        Matrix[i,j] = Data[i*NumX+j+1]

print(Matrix)

xi = np.arange(0, NumX)
yi = np.arange(0, NumY)
X, Y = np.meshgrid(xi, yi)

plt.pcolormesh(X, Y, Matrix)
for i in range(NumY-1):
    for j in range(NumX-1):
        plt.text(j,i, Matrix[i,j], color="w")
plt.colorbar()

plt.show()