On Wed, Apr 1, 2009 at 2:50 PM, empty83 <matt.te...@gmail.com> wrote:
>
> I understand why things were not behaving as I expected and I don't really
> have any good ideas on how to make a legend from a RegularPolyCollection in
> general.
>
> However, I do not grok why fill_between returns a RegularPolyCollection
> rather than a Polygon (like fill does).  Does fill_between(x,y0,y1) differ
> substantially from fill(x+x[::-1], y0+y1[::-1])?  To me this seems like the
> most intuitive behavior.

Because fill_between handles masks, it uses a collection (a
PolyCollection, not a RegularPolyCollection) rather than a simple
Polygon.  For example, see the use of the "where" argument in the
second plot at

  http://matplotlib.sourceforge.net/examples/pylab_examples/fill_between.html

The simplest way to handle this for the legend is probably to create a
proxy Rectangle with the same properties as the first element in the
poly collection.  Since it is not designed to support multiple
properties for the different fill regions, we might be able to improve
this from a design and performance perspective by using a complex Path
instead of a PolyCollection.

In the interim, you can always manually create a legend using a proxy
Rectangle passed in as a handle to the legend, though admittedly this
is much more cumbersome.

JDH

------------------------------------------------------------------------------
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to