如何使用imshow显示numpy数组

22

这个循环生成的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()
2个回答

28
您可以按照以下方式使用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()

enter image description here

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

0

imshow 通常用于绘制二维数据。值得指出的是,当显示图像时,插值参数可能非常有用。在下面的示例中,相同的数据在左侧没有插值(interpolation='none')的情况下绘制,在右侧使用高斯插值interpolation='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)

imshow


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接