On Jun 23, 2009, at 6:01 PM, Jeff Whitaker wrote:
>>
> Pierre:  Doing what you suggest (having Basemap.__init__   
> automatically set self.ax to the current axes) will break pickling,  
> so I can't do that.

Oh, I'm sorry for the misunderstanding: I never suggested that  
Basemap.ax should be set at creation (apart from Basemap.ax=None).  
Instead, I suggested that it would be set when a drawing method is  
called that requires access to the underlying Axes (basically, all the  
plotting methods).
That way, as soon as something is plotted, we associate the basemap  
instance with one particular Axes instance and we stick to it by  
default. We can always break the link by changing basemap.ax (that is,  
associate to another Axes instance),  but we don't have the surprise  
of using the last Axes instance by default.

Now, the more I think about it, the more I'd prefer to separate  
Basemaps from Axes. Right now, self.ax assures the connection in a way  
I find frustrating. I'd prefer getting rid of Basemap.ax and force  
'ax' to be defined all the time.

Alternatively, we could consider having  2 separate objects:  a  
Basemap that stores all the projection information but has *NO*  
plotting methods, and a MapAxes that inherits from Axes and requires a  
specific Basemap attribute at creation. The current plotting routines  
would be associated with the MapAxes object.



------------------------------------------------------------------------------
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to