old_contents: from mpl_toolkits.basemap import Basemap, cm
  # requires netcdf4-python (netcdf4-python.googlecode.com)
  from netCDF4 import Dataset as NetCDFFile
  import numpy as np
  import matplotlib.pyplot as plt
  import copy
  from matplotlib import rcParams
  
  # plot rainfall from NWS using special precipitation
  # colormap used by the NWS, and included in basemap.
  
  nc = NetCDFFile('../../../examples/nws_precip_conus_20061222.nc')
  # data from http://water.weather.gov/precip/
  prcpvar = nc.variables['amountofprecip']
  data = 0.01*prcpvar[:]
  latcorners = nc.variables['lat'][:]
  loncorners = -nc.variables['lon'][:]
  lon_0 = -nc.variables['true_lon'].getValue()
  lat_0 = nc.variables['true_lat'].getValue()
  # create figure and axes instances
  fig = plt.figure(figsize=(8,8))
  ax = fig.add_axes([0.05,0.05,0.9,0.9])
  # create polar stereographic Basemap instance.
  m = Basemap(projection='stere',lon_0=lon_0,lat_0=90.,lat_ts=lat_0,\
              llcrnrlat=latcorners[0],urcrnrlat=latcorners[2],\
              llcrnrlon=loncorners[0],urcrnrlon=loncorners[2],\
              rsphere=6371200.,resolution='l',area_thresh=10000)
  # draw coastlines, state and country boundaries, edge of map.
  m.drawcoastlines()
  m.drawstates()
  m.drawcountries()
  # draw parallels.
  parallels = np.arange(0.,90,10.)
  m.drawparallels(parallels,labels=[1,0,0,0],fontsize=10)
  # draw meridians
  meridians = np.arange(180.,360.,10.)
  m.drawmeridians(meridians,labels=[0,0,0,1],fontsize=10)
  ny = data.shape[0]; nx = data.shape[1]
  lons, lats = m.makegrid(nx, ny) # get lat/lons of ny by nx evenly space grid.
  x, y = m(lons, lats) # compute map proj coordinates.
  # draw filled contours.
  clevs = [0,1,2.5,5,7.5,10,15,20,30,40,50,70,100,150,200,250,300,400,500,600,750]
  cs = m.contourf(x,y,data,clevs,cmap=cm.s3pcpn)
  cbar = plt.colorbar(orientation='horizontal',shrink=0.75)
  cbar.set_label('mm')
  
  # plot title
  plt.title(prcpvar.long_name+' for period ending '+prcpvar.dateofdata)
  plt.savefig('plotprecip.png')
  
new_contents: from mpl_toolkits.basemap import Basemap, cm
  # requires netcdf4-python (netcdf4-python.googlecode.com)
  from netCDF4 import Dataset as NetCDFFile
  import numpy as np
  import matplotlib.pyplot as plt
  import copy
  from matplotlib import rcParams
  
  # plot rainfall from NWS using special precipitation
  # colormap used by the NWS, and included in basemap.
  
  nc = NetCDFFile('../../../examples/nws_precip_conus_20061222.nc')
  # data from http://water.weather.gov/precip/
  prcpvar = nc.variables['amountofprecip']
  data = 0.01*prcpvar[:]
  latcorners = nc.variables['lat'][:]
  loncorners = -nc.variables['lon'][:]
  lon_0 = -nc.variables['true_lon'].getValue()
  lat_0 = nc.variables['true_lat'].getValue()
  # create figure and axes instances
  fig = plt.figure(figsize=(8,8))
  ax = fig.add_axes([0.1,0.1,0.8,0.8])
  # create polar stereographic Basemap instance.
  m = Basemap(projection='stere',lon_0=lon_0,lat_0=90.,lat_ts=lat_0,\
              llcrnrlat=latcorners[0],urcrnrlat=latcorners[2],\
              llcrnrlon=loncorners[0],urcrnrlon=loncorners[2],\
              rsphere=6371200.,resolution='l',area_thresh=10000)
  # draw coastlines, state and country boundaries, edge of map.
  m.drawcoastlines()
  m.drawstates()
  m.drawcountries()
  # draw parallels.
  parallels = np.arange(0.,90,10.)
  m.drawparallels(parallels,labels=[1,0,0,0],fontsize=10)
  # draw meridians
  meridians = np.arange(180.,360.,10.)
  m.drawmeridians(meridians,labels=[0,0,0,1],fontsize=10)
  ny = data.shape[0]; nx = data.shape[1]
  lons, lats = m.makegrid(nx, ny) # get lat/lons of ny by nx evenly space grid.
  x, y = m(lons, lats) # compute map proj coordinates.
  # draw filled contours.
  clevs = [0,1,2.5,5,7.5,10,15,20,30,40,50,70,100,150,200,250,300,400,500,600,750]
  cs = m.contourf(x,y,data,clevs,cmap=cm.s3pcpn)
  # add colorbar.
  cbar = m.colorbar(cs,location='bottom',pad=0.25)
  cbar.set_label('mm')
  # add title
  plt.title(prcpvar.long_name+' for period ending '+prcpvar.dateofdata)
  plt.savefig('plotprecip.png')
  plt.show()
  
subject: use new colorbar method