From: Andrew Straw [mailto:straw...@astraw.com] Sent: Thursday, September 30, 2010 11:55 On 09/29/2010 08:27 AM, Stan West wrote:
I'm setting up an axes in which I configure the axis objects with my desired tick locators and formatters and later configure the spines, setting their bounds, visibility, and positions. I was surprised that setting the spine position wiped my axis formatting by calling axis.cla(). Is it necessary that the spine must clear the registered axis when its position is changed? (The same clearing occurs in Spine.register_axis(), but in my case that occurs at axes creation and doesn't cause me any trouble.) Hi Stan, IIRC, it has to do with forcing the axis elements to reconnect to the spine after it has a new transform. If you can think of a better way to do it, please give it a try. Simply deleting that call causes problems in some cases, such as in the demo multiple_yaxis_with_spines.py. Thanks, Andrew. I tried using self.axis.reset_ticks() instead of self.axis.cla() in Spine.set_position(), and it was sufficient to give the correct results in multiple_yaxis_with_spines.py and spine_placement_demo.py. Going further, I made the same substitution in Spine.register_axis() and Spine.cla(), and the example plots still looked correct. (A patch is attached.) These latter substitutions seem okay internally, eliminating redundant executions of Axis.cla(): The only active calls to Spine.register_axis() are in Axes._init_axis() immediately following the instantiation of the axis objects, and the only call I found to Spine.cla() is in Axes.cla() right after self.xaxis.cla() and self.yaxis.cla() have occurred. Are these changes the way to go? Along the way, I noticed that the polar and geographic axes in projections/polar.py and geo.py have commented-out calls to Spine.register_axis(), to avoid calling Axis.cla(). Does the patch help improve that situation?
spines.Spine.patch
Description: Binary data
------------------------------------------------------------------------------ Beautiful is writing same markup. Internet Explorer 9 supports standards for HTML5, CSS3, SVG 1.1, ECMAScript5, and DOM L2 & L3. Spend less time writing and rewriting code and more time creating great experiences on the web. Be a part of the beta today. http://p.sf.net/sfu/beautyoftheweb
_______________________________________________ Matplotlib-devel mailing list Matplotlib-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-devel