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?

Attachment: 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

Reply via email to