I have just submitted the following two additions to the code:
1) Added ability to have X and Y Axis autoscale independently. This is handled by the addition of the following methods to Axes:
-- Axes.get_autoscalex_on() / Axes.set_autoscalex_on( bool )
-- Axes.get_autoscaley_on() / Axes.set_autoscaley_on( bool )
The original method of Axes.set_autoscale_on( bool ) will set the auto scale for the x and y axes to be the same (thus keeping
its functionality exactly the same). The method Axes.get_autoscale_on() currently acts exactly as the original in that it returns
True is the x and y axes are both auto scaling (since the original behavior was that both axes had the same flag). This can be
changed however so that it returns True if either axis has auto scaling enabled.
2) Fixed a bug where any user specified formatter, locator, of axis labels would get overwritten if anything tickled the unit
handling code after they were set. In order to facilitate this I added the following methods to Axis:
-- Axis.get_label_text() / Axis.get_label_text( str )
Essentially user-specified explicit values will take precedence over any "default" or "smart" generated values.