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

Reply via email to