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)

| 归档时间: |
|
| 查看次数: |
10708 次 |
| 最近记录: |