On Thu, Jan 15, 2009 at 4:58 PM, Ryan May <rma...@gmail.com> wrote:

> Ok, my debugging tells me the problem comes down to the units support,
> specifically this code starting at line 130 in units.py:
>
>        if converter is None and iterable(x):
>            # if this is anything but an object array, we'll assume
>            # there are no custom units
>            if isinstance(x, np.ndarray) and x.dtype != np.object:
>                return None
>
>            for thisx in x:
>                converter = self.get_converter( thisx )
>                return converter
>
> Because a string is iterable, and even a single character is considered 
> iterable,
> this code recurses forever.  I can think this can be solved by, in addition to
> the iterable() check, make sure that x is not string like.  If it is, this 
> will
> return None as the converter.  Somehow, this actually will then plot properly.
> I'm still trying to run down why this works, but I'm running out of time for 
> the
> day.  I will say that the data set for the line2D object is indeed a masked 
> array
>  of dtype ('|S4').
>
> Anyone object to adding the check?

Nope -- good idea

> In addition, why are we looping over thisx in x but returning inside the loop?
> Wouldn't this *always* be the same as x[0]?

The loop works for generic iterables that are not indexable and also
for length 0 iterables

JDH

------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________
Matplotlib-devel mailing list
Matplotlib-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel

Reply via email to