matplotlib 如何用imshow显示numpy数组

wmvff8tz  于 2023-05-29  发布在  其他
关注(0)|答案(2)|浏览(133)

这个循环产生的np.array有4383行和6列。我尝试使用matplotlib(pylab)中的pylab.imshow()来显示阵列,但没有成功。
目标是创建阵列的图像,其中颜色梯度表示阵列值的大小。
阵列的每一行代表每天(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])
    
pylab.imshow(TempLake)
pylab.show()
jmo0nnb3

jmo0nnb31#

您可以按如下方式使用imshow

import pylab as plt
import numpy as np

Z=np.array(((1,2,3,4,5),(4,5,6,7,8),(7,8,9,10,11)))
im = plt.imshow(Z, cmap='hot')
plt.colorbar(im, orientation='horizontal')
plt.show()

在您的情况下,您可以检查TempLake的输出。

fhg3lkii

fhg3lkii2#

imshow通常用于绘制2D数据。值得指出的是,插值参数在显示图像时可能很有用。在以下示例中,绘制了相同的数据,左侧没有插值(interpolation='none'),右侧有gaussian interpolationinterpolation='gaussian')。

import matplotlib.pyplot as plt
import numpy as np

TempLake = np.array([(1,2,3,4,5),(4,5,6,7,8),(7,8,9,10,11)])
im = plt.imshow(TempLake, cmap='hot', interpolation='none')
plt.colorbar(im)

相关问题