Hi,
thanks for reply.
My problem is that I need to scatter data of different periods but in the
same x.
For example, the quantity x sold in March is 1 at price y of 2, the quantity
sold in April is 2 at price y of 3. I want the 2 points to have different
colors in the same graph!
Now I'm doing:
for i in list:
x.append(i[0])
y.append(i[1])
axScatter.scatter(x, y, c='r', marker='s')
This makes al the points red! I want to be able to put points of different
colors for different periods of time. Basically, I want to know how to
define a function in order to change the color of the points for specific
definitions.
Jae-Joon Lee wrote:
>
> On Tue, Oct 5, 2010 at 11:07 PM, Alessio Civ <[email protected]>
> wrote:
>>
>> Hi,
>>
>> I'm trying to make a scatter plot of 2 variables using a thirds as filter
>> to
>> have different colors.
>>
>> Let's say I have those data:
>>
>> x=1,2,3,4
>> y=2,3,4,5
>> z=0,1,0,1
>>
>> Then I want the values of x and y corresponding to those of z=0 to be of
>> a
>> color and those corresponding to z=1 to be of another color.
>>
>> This is the code I manage to do until know:
>>
>>
>> import xlrd
>> import numpy as np
>> import matplotlib.pyplot as plt
>>
>> wb = xlrd.open_workbook('GBL2009.xls')
>> sh = wb.sheet_by_index(0)
>>
>> def column_pos():
>> first_row=sh.row_values(0)
>> net_p=""
>> for i in first_row:
>> if i=='net_price':
>> net_p=first_row.index(i) #In gets the column position
>> for i in first_row:
>> if i=='material':
>> mat_p=first_row.index(i) #In gets the column position
>> for i in first_row:
>> if i=='qty':
>> qty_p=first_row.index(i) #In gets the column position
>> print net_p, mat_p, qty_p
>> #filtering(net_p, mat_p, qty_p)
>> test(net_p, mat_p, qty_p)
>>
>>
>> def test(net_p, mat_p, qty_p):
>> list=[]
>> for rownum in range(sh.nrows):
>> if sh.cell(rownum,mat_p).value in (96433890, 96433886):
>> list.append(sh.row_values(rownum))
>>
>> x=[]
>> y=[]
>> z=[]
>> for i in list:
>> x.append(i[qty_p])
>> y.append(i[net_p])
>> z.append(i[mat_p])
>>
>> fig = plt.figure(1, figsize=(5.5,5.5))
>> axScatter = plt.subplot(111)
>>
>> colors = ('r', 'g', 'b', 'k')
>> for c in colors:
>> axScatter.scatter(x, y, c=c, marker='s')
>>
>> plt.show()
>>
>
> So, what is your problem?
> If you want to post a code, please post a complete (but simple!) code.
>
> If you want to map values of z to colors, a simple solution would be
> to use dict.
>
> z = [0,1,0,1]
> color_map = {0:"r", 1:"g"}
> z_as_colors = map(color_map.get, z)
>
> scatter supports colormap but it may not very useful for your case.
>
> Regards,
>
> -JJ
>
> ------------------------------------------------------------------------------
> Beautiful is writing same markup. Internet Explorer 9 supports
> standards for HTML5, CSS3, SVG 1.1, ECMAScript5, and DOM L2 & L3.
> Spend less time writing and rewriting code and more time creating great
> experiences on the web. Be a part of the beta today.
> http://p.sf.net/sfu/beautyoftheweb
> _______________________________________________
> Matplotlib-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
>
--
View this message in context:
http://old.nabble.com/Scatter-Plot-with-different-colors-tp29887701p29928970.html
Sent from the matplotlib - users mailing list archive at Nabble.com.
------------------------------------------------------------------------------
Beautiful is writing same markup. Internet Explorer 9 supports
standards for HTML5, CSS3, SVG 1.1, ECMAScript5, and DOM L2 & L3.
Spend less time writing and rewriting code and more time creating great
experiences on the web. Be a part of the beta today.
http://p.sf.net/sfu/beautyoftheweb
_______________________________________________
Matplotlib-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-users