Jeff, Basemap methods like plot() include a "draw_if_interactive" command, followed by a call to the set_axes_limits() method, which ends with
# force draw if in interactive mode. if is_interactive(): figManager = _pylab_helpers.Gcf.get_active() figManager.canvas.draw() It seems to me that you could eliminate all those "draw_if_interactive" blocks from plot etc., and replace the end block of set_axes_limits() with if is_interactive(): import matplotlib.pyplot as plt plt.draw_if_interactive() The advantages would be reduced clutter in the drawing methods, and consistent use of draw_if_interactive. I think the latter would make interactive running of functions and subclasses built on basemap more efficient by reducing redundant draw operations. It also looks like at least most of the operations in set_axes_limits really need to be done only once (although I have not checked this carefully). Instead of repeating them with every call to a plotting method, the basemap instance could keep a list of hashes of axes objects on which the operations have already been run, and use that to prevent duplication. Nothing urgent here--just some ideas that occur to me while working with basemap. If you think any are worth pursuing, and you want me to take a shot at it, let me know. Eric ------------------------------------------------------------------------------ Download Intel® Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev _______________________________________________ Matplotlib-devel mailing list Matplotlib-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-devel