import numpy from mpl_toolkits.basemap import Basemap import matplotlib.pyplot as pylab x_min = 10 ; x_max = 21. y_min = -20. ; y_max = -10. lon_box = numpy.array ( [x_min, x_min, x_max, x_max, x_min]) lat_box = numpy.array ( [y_min, y_max, y_max, y_min, y_min]) fig = pylab.figure(figsize=(8,8),dpi=300,facecolor='white') projection_opts={'projection':'merc','lat_ts':0.0, 'resolution':'h'} ax1 = fig.add_axes([0.1,0.1,0.8,0.8]) m = Basemap(ax=ax1,llcrnrlon=x_min, llcrnrlat=y_min, urcrnrlon=x_max,urcrnrlat=y_max, ** projection_opts) m.bluemarble() m.drawcoastlines (linewidth=0.25, color='w') m.drawcountries(linewidth=0.25, color='w') fig.canvas.draw() background = fig.canvas.copy_from_bbox(fig.bbox) for i in xrange(5): lat_box = lat_box + 2.0*i fig2 = pylab.figure(figsize=(8,8),dpi=150,facecolor='white') # ax1 = fig.add_axes([0.1,0.1,0.8,0.8]) ax = fig2.add_subplot(111, frameon=False, xticks=[], yticks=[]) # restore previous background ax2 = fig.add_axes([0.15,0.65,0.25,0.25]) m2 = Basemap(projection='ortho',lon_0=6,lat_0=-12,ax=ax2) (x,y) = m2 (lon_box, lat_box) m2.drawmapboundary(fill_color='#33339F') m2.drawcoastlines(linewidth=0.1) m2.fillcontinents(color='chocolate',lake_color='#33339F') m2.plot ( x, y, '-r', lw=2) fig2.canvas.draw() fig2.canvas.restore_region(background) fig2.canvas.draw() fig2.savefig ("test_%02d.png"%i,dpi=150)