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
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel