user1419224 user1419224 - 1 year ago 119
Python Question

How can I display a np.array with pylab.imshow()

the np.array that results from this loop has 4383 lines and 6 columns. I have tried without success to use pylab.imshow () from matplotlib(pylab) to display the array. The objective is to creat an image of the array, in wich the colors gradient represent the magnitude of the array values.
Each row of the array represents the variation in depth of a lake temperature in each day (4383 days). Thus the objective is to find diferences in lake temperatures in depth and with time. Thank you

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])


np.savetxt('test.out', TempLake, delimiter=',')
np.savetxt('test1.out', Q, delimiter=',')

pylab.imshow(TempLake)
pylab.show()

Answer Source

You can use imshow as follows:

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

In your case can you check the output of TempLake.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download