Sorry for the delay.
I don’t know if I ever included my software versions:
Python & IDLE 2.6.2
matplotlib 0.99.0
numpy 1.4.0rc1 (I was using 1.3.0)
Here is more complete code. This is the only place I use matplotlib for anything so I don’t think any earlier code should affect the plot.
I’ve included the values of the input variables below and I could include all the code which gets the data and manipulates it if this would help.
def plotGrid(x_dim,y_dim,z_dim,long_name,units,contours=16):
"""
This will create a frame for all the sub plots. There will be one row (subplot) per parameter. There will be one column.
All plots will share their x scale (time)
Each row will have its own y scale and legend
"""
from matplotlib import pyplot
from mpl_toolkits.axes_grid import AxesGrid
from numpy import meshgrid, transpose
nrows = len(z_dim) # Number of rows
print('there are',nrows,'rows') # Confirm that the number of rows is as expected.
fig_h_size = 20. # figure width in inches
fig_v_size = 8. # figure height in inches
dev_mult = 3 # How many standard deviations to mask out.
x_grid,y_grid = meshgrid(x_dim,y_dim)
x_grid = transpose(x_grid)
y_grid = transpose(y_grid)
# Start the plotting routines
DAP_figure = pyplot.figure(1,(fig_h_size,fig_v_size))
pyplot.title('Title goes here')
pyplot.figtext(0.05,.5,"Depth (m)",rotation='vertical',verticalalignment='center')
# Create a grid of axes with the AxesGrid helper class
my_grid = AxesGrid(DAP_figure, 111, # Only one grid in DAP_figure
nrows_ncols = (nrows,1),
axes_pad = 0.0, # pad between axes in inches
aspect=False, # By default (False), widths and heigths of axes in the grid are scaled independently. If True, they are scaled according to their data limits
add_all=True, # Add axes to figures if True (default True)
share_all=True, # xaxis & yaxis of all axes are shared if True (default False)
label_mode = "L", # location of tick labels thaw will be displayed. "1" (only the lower left axes), "L" (left most and bottom most axes), or "all"
cbar_location="right", # "right" or "top"
cbar_mode="each", # "None","single", or "each"
cbar_size="2%",
cbar_pad="1%",
)
for i,parameter in enumerate(z_dim):
z_dim[parameter] = maskDAP(z_dim[parameter],parameter,dev_mult) #Need to mask each grid
ax = my_grid[i].pcolor(x_grid,y_grid,z_dim[parameter])
print('from',x_grid[0][0],'to',x_grid[-1][0])
my_grid[i].set_ylabel(long_name[parameter]) # Puts a y label on every graph. Eventually we want this labeled only once.
my_grid.cbar_axes[i].colorbar(ax)
my_grid.cbar_axes[i].axis["right"].toggle(ticklabels=True,label=True)
my_grid.cbar_axes[i].set_ylabel(units[parameter])
# Now show it
pyplot.draw()
pyplot.show()
return x_grid, y_grid, my_grid #Useful only for debugging. There is no code after this.
Here are some typical values for the inpit variables if it helps,
x_dim, time in epoch seconds, is:
array([1253250000, 1253251800, 1253253600, 1253255400, 1253257200,
1253259000, 1253260800, 1253262600, 1253264400, 1253266200,
1253268000, 1253269800, 1253271600, 1253273400, 1253275200,
1253277000, 1253278800, 1253280600, 1253282400, 1253284200,
1253286000, 1253287800, 1253289600, 1253291400, 1253293200,
1253295000, 1253296800, 1253298600, 1253300400, 1253302200,
1253304000, 1253305800, 1253307600, 1253309400, 1253311200,
1253313000, 1253314800, 1253316600, 1253318400, 1253320200,
1253322000, 1253323800, 1253325600, 1253327400, 1253329200,
1253331000, 1253332800])
y_dim, water depths in meters, is:
array([ 0. , -0.1, -0.2, -0.3, -0.4, -0.5, -0.6, -0.7, -0.8, -0.9, -1. ,
-1.1, -1.2, -1.3, -1.4, -1.5, -1.6, -1.7, -1.8, -1.9, -2. , -2.1,
-2.2, -2.3, -2.4, -2.5, -2.6, -2.7])
in the example plot below z_dim is a dictionary with three arrays, ‘do’,‘chl’,‘turb’.
as an example, z_dim[‘chl’] (chlorophyl) is a 2D array of the form:
masked_array(data =
[[-- 14.8400002718 14.8400002718 …, 13.1000023892 – --]
[-- 15.0 15.0 …, – -- --]
[-- 13.1241378212 13.1241378212 …, – -- --]
…,
[-- 12.081481385 12.081481385 …, 10.3037038589 – --]
[-- 11.0882356451 11.0882356451 …, 9.95714437393 – --]
[-- 13.4448273754 13.4448273754 …, – -- --]],
mask =
[[ True False False …, False True True]
[ True False False …, True True True]
[ True False False …, True True True]
…,
[ True False False …, False True True]
[ True False False …, False True True]
[ True False False …, True True True]],
fill_value = 1e+20)
Here’s the plot as it stands now:

Thank you again for your time.
···
On Fri, Dec 4, 2009 at 4:07 PM, Jae-Joon Lee <lee.j.joon@…878…287…> wrote:
Please, “more” complete example does not make any difference unless it is complete.