我正在尝试使用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)
答案 0 :(得分:2)
您需要注意数组的索引规则。 X是第二个维度,Y是第一个维度。
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()