All, Based on what everyone has been saying I have submitted an update to axes.py that reverts the get/set xlim/ylim methods to their original state with their original interface. I have removed the state flag that keeps track of inverted axes.
Currently I have added the method get/set xbound/ybound that handles getting and setting of the upper and lower bounds and will handle inverted axes. I have made a couple of changes within the Axes class to now call the xbound/ybound methods so that the handling of inversion is automatic. This at least solves the immediate problems and provides some level of protection by giving a "safe" method to call when writing methods that deal with axes limits. Let me know what you think. --James Evans > -----Original Message----- > From: Ted Drain [mailto:[EMAIL PROTECTED] > Sent: Thursday, October 04, 2007 2:34 PM > To: Eric Firing > Cc: James Evans; John Hunter; matplotlib development list > Subject: Re: [matplotlib-devel] API additions > > Sounds fine - I don't think we care too much about the "how". I > talked w/ James and as far as we know, the aspect code is the only > area that's having a problem right now (James is going to submit a > patch to that to handle x1>x2 today). > > Since we do these plots all the time, we've just seen a number of > problems come up as new features get added and people forget that > x1 > x2 is a possibility. We were just trying to think of ways of > "future proofing" the new system by making it more obvious that this > case does show up. It might be able to be handled by some extra > comments in the existing code so that people who are looking for > examples would get a reminder that this case has to be handled. > > Ted > > At 02:11 PM 10/4/2007, Eric Firing wrote: > >Ted Drain wrote: > > > John, > > > I think keeping the existing API is probably a good idea. What about > > > something like this: > > > > > > - Keep xlim and viewlim as they are. > > > > > > - Add xbound() (or maybe a better name) that returns (x1,x2) where x1 < > > > x2. > > > > > > - Add set_xbound(x1,x2) that takes x1<x2, checks the inversion flag, and > > > then calls set_xlim() w/ the args in the proper order. > > > >The fundamental object containing the relevant information is the > >Interval instance. Instead of having a proliferation of flags and > >functions at the python level, I am thinking about adding a few very > >simple methods to the Interval object. Maybe > > > >swap() to reverse the order of the bounds > >increasing() to yield True if val2 >= val1 > > > >Your xbound and set_xbound functionality could also be done this way, as > >Interval methods. > > > > > >Mike, how would this fit in with your reworking of transforms? > > > >Eric > > > > > > > > - Change the existing axis code that messes w/ bounds (autoscale, aspect > > > ratio, etc) to use xbound. These algorithm can then be written so > > > they're independent of the order of x1 and x2 and they won't flip the > > > bounds back if the inversion flag is set. > > > > > > Ted > > > >------------------------------------------------------------------------- > >This SF.net email is sponsored by: Splunk Inc. > >Still grepping through log files to find problems? Stop. > >Now Search log events and configuration files using AJAX and a browser. > >Download your FREE copy of Splunk now >> http://get.splunk.com/ > >_______________________________________________ > >Matplotlib-devel mailing list > >Matplotlib-devel@lists.sourceforge.net > >https://lists.sourceforge.net/lists/listinfo/matplotlib-devel > > Ted Drain Jet Propulsion Laboratory [EMAIL PROTECTED] > ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ Matplotlib-devel mailing list Matplotlib-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-devel