Andrew Straw wrote:
> John Hunter wrote:
>   
>> On Mon, Nov 9, 2009 at 10:21 AM, Andrew Straw <straw...@astraw.com> wrote:
>>   
>>     
>>> Hi All,
>>>
>>> I have addressed what I think is a long-standing wart: zorder is mostly
>>> ignored for imshow(). (See e.g.
>>> http://old.nabble.com/Re%3A--Matplotlib-users--imshow-zorder-tt19047314.html#a19047314
>>> ) The question is whether I should apply the attached patch.
>>>     
I went ahead and committed this patch to the trunk in r7950.

Here's the CHANGELOG entry:

2009-11-10 Single images, and all images in renderers with
           option_image_nocomposite (i.e. agg, macosx and the svg
           backend when rcParams['svg.image_noscale'] is True), are
           now drawn respecting the zorder relative to other
           artists. (Note that there may now be inconsistencies across
           backends when more than one image is drawn at varying
           zorders, but this change introduces correct behavior for
           the backends in which it's easy to do so.)

Jae Joon raised a couple of concerns:

1) the patch would introduces inconsistent behavior between backends -- 
namely that PS and other backends, when given more than one image, would 
"composite" (or rasterize) all images and stick them underneath 
everything else. Agg would have proper zordering between images and 
other artists.

2) there is doubt about the utility of such functionality. Jae-Joon says 
"I think it is often sufficient if we draw images at the bottom but 
respect zorders among images".

As for #1, it seems to me this is simply a bug/limitation with the 
compositing functionality (e.g. the PS backend). The SVG backend has the 
possibility to turn compositing on or off based on the svg.image_noscale 
rcParam, and perhaps other backends could grow something similar. I 
can't see why this patch -- that specifically solves the bug/limitation 
in the backends where its easily possible -- should be held back due to 
this.

As for #2, perhaps my use case will be convincing -- I'm trying to draw 
reconstructions of various experimental setups, and the easiest way to 
do this is to create texture-mapped rectangles in which I can control 
the zorder -- a single texture may need to be over some artists but 
under others. Perhaps there's an easier way to achieve this, but I'm not 
aware of it.

Jae Joon has also stated that he's OK with the patch, so I went ahead 
and committed it. In light of all this, please let me know if you still 
have concerns, and hopefully they can be addressed. In the worst case, 
we can back this patch out.

-Andrew

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Matplotlib-devel mailing list
Matplotlib-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel

Reply via email to