2017-03-09 62 views
0

我試圖在python中使用pcolor繪製矩陣。這是我的代碼,但它不起作用。你能告訴我如何繪製矩陣?!Python中的Pcolor數據圖

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: Dimensions of C (22, 30) are incompatible with X (22) and/or Y (30); see help(pcolormesh)

回答

1

你需要介意數組索引規則。 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()