jorgesmbox...@yahoo.es wrote:
> 

> Hi, The matplotlib.collections.Collection documentation reads: "All
> properties in a collection must be sequences or scalars; if scalars,
> they will be converted to sequences.  The property of the ith element
> of the collection is: prop[i % len(props)]". I had a look at the
> docstring documentation from ipython, but I didn't find out how the
> above is achieved (I am learning Python together with numpy,
> matplotlib, etc.). In my own code, how could I do something like
> this? If you point to a relevant location on the source code, that's

import matplotlib.cbook as cbook

def to_sequence(arg):
     if cbook.is_iterable(arg):
         return arg
     return [arg]

Above is an example of how one can turn a scalar into a sequence (a 
list, in this case) if necessary.

> alright. I also get confused sometimes because of the multiple (and
> sometimes interchangeable) ways of specifying arguments: sequences
> (list, tuples), numpy arrays, etc. I started using almost exclusively
> numpy arrays (probably due to my matlab background), but I am
> starting to mix a bit of everything now (depending on what "sources
> of inspiration" I use), so I wondered what a good guideline would be.

Different types of sequence have different advantages and disadvantages. 
Tuples are immutable.  Lists are much more flexible, and can be 
extended.  ndarrays are fixed-size, but facilitate efficient computation.

If a function or method accepts any kind of sequence for a given 
argument, then probably the thing to do is give it whatever you have 
already, or whatever is most convenient to generate.  Lists are a good 
default if the sequence has only a few elements and you are writing them 
out, rather than calculating them from some other sequence.  In other 
words, if a function is flexible, then trust the function to do whatever 
conversions it needs internally; there is no particular advantage in 
doing the conversion yourself when you specify the argument.

Eric

------------------------------------------------------------------------------
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables unlimited
royalty-free distribution of the report engine for externally facing 
server and web deployment.
http://p.sf.net/sfu/businessobjects
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to