Dear all,

It is still the same problem. Actually my code like below :

import os
import netCDF4 as nc
import numpy as np
import matplotlib.pylab as pl

base_dir = 'C:/DATA2011/'   # Note PC
nc_file1 = '20110301.faifb1p16m2.nc'  # Single beam data
nc_file2 = '20110301.faifb1p16m3.nc'  # Single beam data
nc_file3 = '20110301.faifb1p16m4.nc'  # Single beam data

# Change directory
os.chdir(base_dir)

# Open netCDF file
fd1 = nc.Dataset(nc_file1, 'r')
fd2 = nc.Dataset(nc_file2, 'r')
fd3 = nc.Dataset(nc_file3, 'r')

# Read variables from the netCDF file
date1 = fd1.variables['date'][:]
beam1 = fd1.variables['beam'][:]
az1 = fd1.variables['az'][:]
ze1 = fd1.variables['ze'][:]
rng1 = fd1.variables['range'][:]
tim1 = fd1.variables['time'][:]
pwr1 = fd1.variables['pwr'][:]
dpl1 = fd1.variables['dpl'][:]
nfft1 = fd1.variables['nfft'][0]
pn1 = fd1.variables['pnoise'][:]

# Read variables from the netCDF file
date2 = fd2.variables['date'][:]
beam2 = fd2.variables['beam'][:]
az2 = fd2.variables['az'][:]
ze2 = fd2.variables['ze'][:]
rng2 = fd2.variables['range'][:]
tim2 = fd2.variables['time'][:]
pwr2 = fd2.variables['pwr'][:]
dpl2 = fd2.variables['dpl'][:]
nfft2 = fd2.variables['nfft'][0]
pn2 = fd2.variables['pnoise'][:]

# Read variables from the netCDF file
date3 = fd3.variables['date'][:]
beam3 = fd3.variables['beam'][:]
az3 = fd3.variables['az'][:]
ze3 = fd3.variables['ze'][:]
rng3 = fd3.variables['range'][:]
tim3 = fd3.variables['time'][:]
pwr3 = fd3.variables['pwr'][:]
dpl3 = fd3.variables['dpl'][:]
nfft3 = fd3.variables['nfft'][0]
pn3 = fd3.variables['pnoise'][:]

# Close netCDF file
fd1.close()
fd2.close()
fd3.close()

# Speify which beam to show
ibeam1 = 0
ibeam2 = 0
ibeam3 = 0

# Time convertion from seconds to hours
tim1 = tim1/3600.0
tim2 = tim2/3600.0
tim3 = tim3/3600.0

# Select data of the specified beam, and transpose
p_plot1 = pwr1[ibeam1]
for it1 in range(len(tim1)):
   p_plot1[it1] = p_plot1[it1] - pn1[ibeam1][it1] - 10.*np.log10(nfft1)
p_plot1 = p_plot1.transpose() 

# Select data of the specified beam, and transpose
p_plot2 = pwr2[ibeam2]
for it2 in range(len(tim2)):
   p_plot2[it2] = p_plot2[it2] - pn2[ibeam2][it2] - 10.*np.log10(nfft2)
p_plot2 = p_plot2.transpose() 

# Select data of the specified beam, and transpose
p_plot3 = pwr3[ibeam3]
for it3 in range(len(tim3)):
   p_plot3[it3] = p_plot3[it3] - pn3[ibeam3][it3] - 10.*np.log10(nfft3)
p_plot3 = p_plot3.transpose() 

# Count max SNR (single beam)
pthres1 = 2.0
N_total1 = 0
N_signal1 = 0
for j in range(len(tim1)):
    if 18.0 <= tim1[j] <= 30.0:
        for i in range(len(rng1)):
            N_total1 = N_total1 + 1
            if 200.0 <= rng1[i] <= 550 :
                if p_plot1[i][j] > pthres1:
                    ipthres1 = i
                    jpthres1 = j
                    N_signal1 = N_signal1 + 1
                    
# Count max SNR (single beam)
pthres2 = 2.0
N_total2 = 0
N_signal2 = 0
for j in range(len(tim2)):
    if 18.0 <= tim2[j] <= 30.0:
        for i in range(len(rng2)):
            N_total2 = N_total2 + 1
            if 200.0 <= rng2[i] <= 550 :
                if p_plot2[i][j] > pthres2:
                    ipthres2 = i
                    jpthres2 = j
                    N_signal2 = N_signal2 + 1
                    
# Count max SNR (single beam)
pthres3 = 2.0
N_total3 = 0
N_signal3 = 0
for j in range(len(tim3)):
    if 18.0 <= tim3[j] <= 30.0:
        for i in range(len(rng3)):
            N_total3 = N_total3 + 1
            if 200.0 <= rng3[i] <= 550 :
                if p_plot3[i][j] > pthres3:
                    ipthres3 = i
                    jpthres3 = j
                    N_signal3 = N_signal3 + 1
                    
fig = pl.figure()
#Plot contour
axs1=fig.add_subplot(3,1,1)
v1 = np.linspace(0., 50., 10., endpoint=True)
axs1=pl.contourf(tim1, rng1, p_plot1, v1, cmap1=pl.cm.jet)
x1 = pl.colorbar(ticks=v1)
print x1
# Set X and Y axis lower/upper limit
set_xy1 = range(4)
set_xy1[0] = 18.0 # x min
set_xy1[1] = 30.0 # x max
set_xy1[2] = 200.0 # y min
set_xy1[3] = 550.0 # y max
pl.axis(set_xy1)

axs2=fig.add_subplot(3,1,2)
v2 = np.linspace(0., 50., 10., endpoint=True)
axs2=pl.contourf(tim2, rng2, p_plot2, v2, cmap2=pl.cm.jet)
x2 = pl.colorbar(ticks=v2)
print x2
# Set X and Y axis lower/upper limit
set_xy2 = range(4)
set_xy2[0] = 18.0 # x min
set_xy2[1] = 30.0 # x max
set_xy2[2] = 200.0 # y min
set_xy2[3] = 550.0 # y max
pl.axis(set_xy2)

axs3=fig.add_subplot(3,1,3)
v3 = np.linspace(0., 50., 10., endpoint=True)
axs3=pl.contourf(tim3, rng3, p_plot3, v3, cmap3=pl.cm.jet)
x3 = pl.colorbar(ticks=v3)
print x3
# Set X and Y axis lower/upper limit
set_xy3 = range(4)
set_xy3[0] = 18.0 # x min
set_xy3[1] = 30.0 # x max
set_xy3[2] = 200.0 # y min
set_xy3[3] = 550.0 # y max
pl.axis(set_xy3)

pl.show()

# Set X and Y axis lower/upper limit
set_xy1 = range(4)
set_xy1[0] = 18.0 # x min
set_xy1[1] = 30.0 # x max
set_xy1[2] = 200.0 # y min
set_xy1[3] = 550.0 # y max
pl.axis(set_xy1)

Could somebody help me to make the code shorter by using loop and the image
only show one colorbar for three image?.

Recent result :

<http://matplotlib.1069221.n5.nabble.com/file/n43464/figure_1.png> 



--
View this message in context: 
http://matplotlib.1069221.n5.nabble.com/One-colorbar-for-many-plot-tp43430p43464.html
Sent from the matplotlib - users mailing list archive at Nabble.com.

------------------------------------------------------------------------------
Time is money. Stop wasting it! Get your web API in 5 minutes.
www.restlet.com/download
http://p.sf.net/sfu/restlet
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to