On Thu, Aug 12, 2010 at 12:37 PM, Eric Firing <efir...@hawaii.edu> wrote:

> On 08/12/2010 06:09 AM, Benjamin Root wrote:
> > On Thu, Aug 12, 2010 at 10:13 AM, Ben North <b...@redfrontdoor.org
> > <mailto:b...@redfrontdoor.org>> wrote:
> >
> >     Ben Root:
> >      >Ben North:
> >      >> Same kind of thing with
> >      >> the kwarg 'color' instead of 'edgecolor', which is also fixed in
> my
> >      >> second recent email.
> >      >
> >      > Looking through the code for bar(), I see the same thing occurs
> >     for the
> >      > 'color' keyword argument.  So I guess we should fix that as well.
> >
> >     Yes, the second of the emails I sent (pasted below) fixes the
> behaviour
> >     for 'edgecolor' and 'color'.  Thanks for committing this.
> >
> >     Ben.
> >
> >
> ------------------------------------------------------------------------
> >
> >
> >     Date: 9 August 2010 09:42
> >     Subject: Handle 'none' as color and edgecolor for bar()
> >
> >     Hi,
> >
> >     Update to my recent email: perhaps it would make sense to handle the
> >     'color' argument in the same way, allowing hollow bars.  Combined
> patch
> >     below.
> >
> >     Ben.
> >
> >
> >
> >     --- ORIG-axes.py        2010-07-06 15:43:35.000000000 +0100
> >     +++ NEW-axes.py 2010-08-09 09:39:44.000256000 +0100
> >     @@ -4575,15 +4575,17 @@
> >             if len(linewidth) < nbars:
> >                 linewidth *= nbars
> >
> >     -        if color is None:
> >     -            color = [None] * nbars
> >     +        if (color is None
> >     +            or (is_string_like(color) and color.lower() == 'none')):
> >     +            color = [color] * nbars
> >             else:
> >                 color = list(mcolors.colorConverter.to_rgba_array(color))
> >                 if len(color) < nbars:
> >                     color *= nbars
> >
> >     -        if edgecolor is None:
> >     -            edgecolor = [None] * nbars
> >     +        if (edgecolor is None
> >     +            or (is_string_like(edgecolor) and edgecolor.lower() ==
> >     'none')):
> >     +            edgecolor = [edgecolor] * nbars
> >             else:
> >                 edgecolor =
> >     list(mcolors.colorConverter.to_rgba_array(edgecolor))
> >                 if len(edgecolor) < nbars:
> >
> >
> >
> > I did a little more checking to see if this was needed elsewhere and I
> > think this is the wrong patch to apply.  It appears that
> > colorConverter.to_rgba_array() might not be correctly handling the case
> > of 'none'.  If one passes in a list of colors with some of them being
> > 'none', everything works nicely.  However, if one passes in just 'none',
> > then it returns an empty array.  Note that passing in ['none'] to
> > .to_rgba_array() produces a length 1 array.
> >
> >  >>> mcolor.colorConvertor.to_rgba_array('none')
> > array([], shape=(0, 4), dtype=float64)
> >
> >  >>> mcolor.colorConvertor.to_rgba_array(['none'])
> > array([[ 0.,  0.,  0.,  0.]])
> >
> >  >>> mcolor.colorConvertor.to_rgba_array('r')
> > array([[ 1.,  0.,  0.,  1.]])
> >
> > Should this be regarded as a bug?
>
> Yes, 'none' should be handled uniformly by that method.  Thanks for
> tracking down actual source of the problem.  Fixing it there is the
> right thing to do.
>
> Eric
>
>
I am assuming that we would like this patched in the maintenance branch,
too, right?  Also, because the doc and the output of the .to_rgba_array()
function is changing, should it be noted in the changelog?

Ben Root
------------------------------------------------------------------------------
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
_______________________________________________
Matplotlib-devel mailing list
Matplotlib-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel

Reply via email to