import numpy
import matplotlib.pyplot as pyplot
from mpl_toolkits.axes_grid1 import AxesGrid
from mpl_toolkits.basemap import Basemap

def GenData(x, y) :
    X_grid, Y_grid = numpy.meshgrid(x - x.mean(), y - y.mean())
    return numpy.sqrt(X_grid**2 + Y_grid**2)


map = Basemap(projection='cyl', resolution='i', llcrnrlat=33.2, llcrnrlon=-105.9,
						urcrnrlat=42.0, urcrnrlon=-94.1)
fig = pyplot.figure()
grid = AxesGrid(fig, 111,
                nrows_ncols=(1, 3),
		axes_pad=0.1,
		cbar_mode='single',
		cbar_pad=0.05,
		cbar_size=0.08,
		)


x = numpy.linspace(-105.9, -94.1, 100)
y = numpy.linspace(33.2, 42.0, 100)
Z = GenData(x, y)

# --------- First Plot -------------
print "First Plot"
ax = grid[0]
map.drawstates(ax=ax, linewidth=1.0, color='k', zorder=0)
ax.set_title("Just map calls")

# -------- Second Plot -------------
print "Second Plot"
ax = grid[1]
map.drawstates(ax=ax, linewidth=1.0, color='k', zorder=0)
map.pcolor(x, y, Z, alpha=0.2, ax=ax, zorder=1)
ax.set_title("With basemap plotting")



# --------- Third Plot ---------------
print "Third Plot"
ax = grid[2]
map.drawstates(ax=ax, linewidth=1.0, color='k', zorder=0)
tempPlot = ax.pcolor(x, y, Z, alpha=0.2, zorder=1)
ax.set_title("With pyplot plotting")

cbar = fig.colorbar(tempPlot, cax=grid.cbar_axes[0])
cbar.set_label("FooBar")

pyplot.show()

