Hi Ryan
More very interesting information! I will give these methods a try!
Thanks once again,
Mike
rcnelson wrote:
>
> Mike,
>
> You may want to look into the matplotlib.cm and matplotlib.colors modules.
> I've had good success with matplotlib.colors.LinearSegmentedColormap and
> its
> 'from_list' method. The documentation is the best location for information
> on this topic. If you have a large number of locations, then the color
> differences will be pretty small, unless you use a colormap with lots of
> different colors. Below is your example using the 'from_list' method and
> the
> built-in colormap 'hsv' (you'll just have to flip around the comments).
> For
> the matplotlib.cm colormaps, be sure to passed in normalized values (which
> is why the call to the colormap is slightly complex).
>
> Maybe this is a bit more help.
>
> Ryan
>
> import numpy as np
> import matplotlib.pyplot as plt
> import matplotlib.colors as plc
> import matplotlib.cm as mcm
>
> IDs = np.array([47, 33, 47, 12, 50, 50, 27, 27, 16, 27])
> locations = np.array(['201', '207', '207', '205', '204', '201', '209',
> '209', \
> '207','207'])
> dates = np.array([ 733315.83240741, 733315.83521991, 733315.83681713,
> 733315.83788194, 733336.54554398, 733336.54731481,
> 733337.99842593, 733337.99943287, 733338.00070602,
> 733338.00252315])
>
> fig = plt.figure()
> ax = fig.add_subplot(111)
> locs_un = np.unique(locations)
> # The variable assignment below can be removed if you use the mcm module.
> cs = plc.LinearSegmentedColormap.from_list('Colormap name', ['r', 'g',
> 'b'],
> N=len(locs_un) )
> for n, i in enumerate(locs_un):
> # Reverse the comments here to use the mcm module 'hsv' colormap.
> ax.plot(dates[locations==i],IDs[locations==i],'d', c=cs(n), label=i)
> #ax.plot(dates[locations==i],IDs[locations==i],'d',
> # c=mcm.hsv( float(n)/(len(locs_un)-1) ), label=i)
> ax.xaxis_date()
> fig.autofmt_xdate()
> plt.legend(numpoints=1)
> plt.grid(True)
> plt.show()
>
>
> On Tue, Oct 4, 2011 at 5:25 PM, Michael Castleton
> <[email protected]>wrote:
>
>>
>> Ryan,
>> I should clarify my color issue. Your code is smart enough to generate
>> however many colors are needed but I want to make sure the colors are all
>> unique.
>> Thanks again!
>>
>> Mike
>>
>>
>>
>> Mike, sorry to send this twice... I should have sent it to the list as
>> well...
>> _______________________________
>> Mike,
>>
>> If your locations were integers or floats rather than strings, you could
>> just change the scatter call to the following:
>> ax.scatter(dates,IDs,c=
>> locations,marker='d')
>> I don't know about a legend... I don't know if that is possible with a
>> scatter plot (?). Because scatter plots get their colors based off of a
>> color map, you could generate a color bar for your data. You may need to
>> capture the collection object returned from the scatter plot function
>> call,
>> though. Here's your code with these modifications:
>>
>> # Of course, you need to change your locations list to integers rather
>> than
>> strings.
>>
>> fig = plt.figure()
>> ax = fig.add_subplot(111)
>> sc = ax.scatter(dates,IDs,c=locations,marker='d')
>> ax.xaxis_date()
>> fig.autofmt_xdate()
>> plt.colorbar(sc)
>> plt.grid(True)
>> plt.show()
>>
>> If you really need a legend, then you could do a loop of plot commands
>> for
>> each set of unique locations. Using some fancy Numpy masking makes the
>> process easier...
>>
>> import numpy as np
>> import matplotlib.pyplot as plt
>>
>> IDs = np.array([47, 33, 47, 12, 50, 50, 27, 27, 16, 27])
>> locations = np.array(['201', '207', '207', '205', '204', '201', '209',
>> '209', \
>> '207','207'])
>> dates = np.array([ 733315.83240741, 733315.83521991, 733315.83681713,
>>
>> 733315.83788194, 733336.54554398, 733336.54731481,
>> 733337.99842593, 733337.99943287, 733338.00070602,
>> 733338.00252315])
>>
>>
>> fig = plt.figure()
>> ax = fig.add_subplot(111)
>> cs = ['r', 'b', 'g', 'k', 'c']
>> for n, i in enumerate(np.unique(locations)):
>> ax.plot(dates[locations==i],IDs[locations==i],'d', c=cs[n%len(cs)],
>> label=i)
>> ax.xaxis_date()
>> fig.autofmt_xdate()
>> plt.legend(numpoints=1)
>> plt.grid(True)
>> plt.show()
>>
>> Not sure if this is exactly what you wanted, but I hope it helps a
>> little.
>>
>> Ryan
>>
>>
>>
>> --
>> View this message in context:
>> http://old.nabble.com/color-problems-in-scatter-plot-tp32584727p32592799.html
>> Sent from the matplotlib - users mailing list archive at Nabble.com.
>>
>>
>>
>> ------------------------------------------------------------------------------
>> All the data continuously generated in your IT infrastructure contains a
>> definitive record of customers, application performance, security
>> threats, fraudulent activity and more. Splunk takes this data and makes
>> sense of it. Business sense. IT sense. Common sense.
>> http://p.sf.net/sfu/splunk-d2dcopy1
>> _______________________________________________
>> Matplotlib-users mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>>
>
> ------------------------------------------------------------------------------
> All the data continuously generated in your IT infrastructure contains a
> definitive record of customers, application performance, security
> threats, fraudulent activity and more. Splunk takes this data and makes
> sense of it. Business sense. IT sense. Common sense.
> http://p.sf.net/sfu/splunk-d2dcopy1
> _______________________________________________
> Matplotlib-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
>
--
View this message in context:
http://old.nabble.com/color-problems-in-scatter-plot-tp32584727p32603057.html
Sent from the matplotlib - users mailing list archive at Nabble.com.
------------------------------------------------------------------------------
All of the data generated in your IT infrastructure is seriously valuable.
Why? It contains a definitive record of application performance, security
threats, fraudulent activity, and more. Splunk takes this data and makes
sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-d2dcopy2
_______________________________________________
Matplotlib-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-users