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 <viandant...@gmail.com> > 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 > Matplotlib-users@lists.sourceforge.net > 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 Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users