On Dec 8, 2008, at 2:00 PM, Ryan May wrote:

> Chad Kidder wrote:
>> On Dec 8, 2008, at 12:55 PM, Ryan May wrote:
>>> Chad Kidder wrote:
>>>> I've got many series of data that I want to plot, and each has  
>>>> an   additional scalar that is valid for the whole series.  What  
>>>> I want  to  do is plot all these series on top of each other  
>>>> (plot can do  this  just fine), but with the additional scalar  
>>>> changing the  color,  efectively using color as the z-axis.  I'm  
>>>> not seeing how  to do that.   If there was a function where I  
>>>> could give a color  map a value and it  would spit out the color,  
>>>> that would work, but  I haven't seen it.   Thanks for your help.
>>> Try using scatter instead of plot.  Specifically, the 'c' keyword   
>>> argument:
>>>
>>>     *c*:
>>>       a color. *c* can be a single color format string, or a
>>>       sequence of color specifications of length *N*, or a
>>>       sequence of *N* numbers to be mapped to colors using the
>>>       *cmap* and *norm* specified via kwargs (see below). Note
>>>       that *c* should not be a single numeric RGB or RGBA
>>>       sequence because that is indistinguishable from an array
>>>       of values to be colormapped.  *c* can be a 2-D array in
>>>       which the rows are RGB or RGBA, however.
>
> Here's what you're looking for:
>
> import numpy as n
> import matplotlib.pyplot as p
> import matplotlib.colors as mcolors
> import matplotlib.cm as cm
>
> cmap = cm.get_cmap('winter')
> norm = mcolors.Normalize(0, 1) #Range of z
>
> nlines = 100
> z = n.random.rand(nlines)
> x = n.arange(nlines)
> t1, t2 = n.meshgrid(x,z)
> y = t1+t2-0.5
>
> #Uses normalize to map z values to range of 0 to 1.
> #Cmap maps these normalized values to colors
> colors = cmap(norm(z))
> for ii in range(nlines):
>    p.plot(x, y[ii], color=colors[ii])
> p.show()
>
> Ryan

Thanks all.  I had tried something close, but it didn't work.  This  
works great.

------------------------------------------------------------------------------
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
The future of the web can't happen without you.  Join us at MIX09 to help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to