2017-03-09 3 views
0

私は、pcolorを使ってPythonで行列をプロットしようとしています。これは私のコードですが、うまくいきません。あなたは私にマトリックスをプロットする方法を教えてもらえますか?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は2番目の次元、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() 
関連する問題