Shrink colorbar with AxesGrid and basemap

Hi,

I am using Basemap to create a grid of 12 images of the world (months of the year), but I want to have a single colorbar underneath the plots. I have managed this successfully but I can’t manage to shrink the colorbar width. Currently it extends the entire width of the plotting window, whereas I’d prefer it to be say extend 80% of the plotting window. I’ve tried combining what I have with the shrink argument to colorbar but this doesn’t work. Does anyone know how I can achieve this?

Code:

import numpy as np

import matplotlib.pyplot as plt

import sys

import matplotlib.colors as colors

from mpl_toolkits.basemap import Basemap

from mpl_toolkits.axes_grid1 import AxesGrid

months = [‘Jan’,‘Feb’,‘Mar’,‘Apr’,‘May’,‘Jun’,‘Jul’,‘Aug’,‘Sep’,‘Oct’,\

‘Nov’,‘Dec’]

fig = plt.figure(figsize=(14, 10))

grid = AxesGrid(fig, [0.05,0.05,0.9,0.9], nrows_ncols=(4,3), axes_pad=0.1,

cbar_mode=‘single’, cbar_pad=0.4, cbar_size=“7%”,

cbar_location=‘bottom’, share_all=True)

m = Basemap(projection=‘cyl’, llcrnrlon=-179.5, llcrnrlat=-59.5, \

urcrnrlon=179.5, urcrnrlat=89.5, resolution=‘c’)

for i, month in enumerate(months):

ax = grid[i]

m.ax = ax

m.drawcoastlines(linewidth=0.1, color=‘k’)

m.drawcountries(linewidth=0.1, color=‘k’)

if i == 0 or i == 3 or i == 6 or i == 9:

m.drawparallels(np.array([-90.0,-60.0,-30.0,0.0,30.0,60.0,90.0]),

labels=[1,0,0,1], fontsize=10, rotation=0,

linewidth=0.2, dashes=[2,2])

else:

m.drawparallels(np.array([-90.0,-60.0,-30.0,0.0,30.0,60.0,90.0]),

labels=[0,0,0,0], fontsize=10, rotation=0,

linewidth=0.2, dashes=[2,2])

if i >= 9:

m.drawmeridians(np.array([-180.0,-120.0,-60.0,0.0,60.0,120.0,180.0]),

labels=[0,0,0,1], fontsize=10, rotation=00,

linewidth=0.2, dashes=[2,2])

else:

m.drawmeridians(np.array([-180.0,-120.0,-60.0,0.0,60.0,120.0,180.0]),

labels=[0,0,0,0], fontsize=10, rotation=00,

linewidth=0.2, dashes=[2,2])

diff = np.random.rand(150,360)

image = m.imshow(diff, cmap=plt.cm.jet, interpolation=‘nearest’)

textstr=’%s’ % (month)

props = dict(boxstyle=‘round’, facecolor=‘white’, alpha=1.0, ec=“white”)

ax.text(0.03, 0.1, textstr, transform=ax.transAxes, fontsize=8,

verticalalignment=‘top’, bbox=props)

cbar = fig.colorbar(image, cax=grid.cbar_axes[0], orientation=‘horizontal’)

plt.show()

Thanks,

Martin

Dr. Martin De Kauwe

CRICOS Provider Number 00002J

Please consider the environment before printing this email.

Research Fellow

Department of Biological Sciences
E8C Building Room 205
Macquarie University

NSW 2109 Australia

T: +61 2 9850 9256
M: + 61 478 096 086
mdekauwe@…287…

This email (including all attachments) is confidential. It may be subject to legal professional privilege and/or protected by copyright. If you receive it in error do not use it or disclose it, notify the sender immediately, delete it from your system and destroy any copies. The University does not guarantee that any email or attachment is secure or free from viruses or other defects. The University is not responsible for emails that are personal or unrelated to the University’s functions.