use*_*224 5 python 2d matplotlib
在np.array
从这个循环的结果有4383行6列.我试过没有成功使用pylab.imshow()
matplotlib(pylab)来显示数组.目标是创建数组的图像,颜色渐变表示数组值的大小.阵列的每一行代表每天湖泊温度的深度变化(4383天).因此,目标是在深度和时间上找到湖泊温度的差异.谢谢
TempLake=np.zeros((N+1,Nlayers))
TempLake[0]=T0
Q=np.zeros(N+1)
Q[0]=0.0
for i in xrange(N):
Q[i+1]=Qn(HSR[i],TD[i],FW[i],TempLake[i][0])
TempLake[i+1]=main_loop(Z,z,Areat0,Areat1,TempLake[i],wind[i],Q[i],Q[i+1])
im = plt.imshow(tem, cmap='hot')
plt.colorbar(im, orientation='horizontal')
plt.show()
Run Code Online (Sandbox Code Playgroud)
结果如下:图例很好,但x轴反转,图像不显示
这就是我需要的:
您可以使用imshow
,如果你只是设置方面,当你调用它.如下:
im = plt.imshow(tem, cmap='hot', aspect=aspect_ratio*(cols/rows))
Run Code Online (Sandbox Code Playgroud)
其中,aspect_ratio
这里将设置所需的实际宽高比和cols/rows
刚刚标准化原始宽高比为1 cols
和rows
的行和列(例如号码rows = data.shape[0]
,cols = data.shape[1]
).
您需要使用pcolor
或pcolormesh
代替imshow
。这是因为在imshow
图形方面与数组相同,在您的情况下为4383x6。
import pylab as plt
import numpy as np
Z=np.array((range(1,30),range(31,60),range(61,90))).transpose()
X,Y=np.meshgrid(range(Z.shape[0]+1),range(Z.shape[1]+1))
im = plt.pcolormesh(X,Y,Z.transpose(), cmap='hot')
plt.colorbar(im, orientation='horizontal')
plt.show()
Run Code Online (Sandbox Code Playgroud)