From: John O. <joh...@ya...> - 2005-07-25 00:45:15
|
First, what a nice release; everything transitioned very nicely. I would like to draw graphs with the following properties: - My graph uses several datasets on the same graph. - I'd like each dataset to have a separate symbol with its own color. For instance, I'd like to write the following code: for dataset in datasets: g.plot(graph.data.list(dataset), graph.style.symbol.next()) where the next() call would somehow increment the color and/or symbol type of the dataset. (This would be a great example, actually; a 3-dataset graph, where the first dataset is, say, red crosses, the second dataset is green plusses, and the third dataset is blue squares.) Instead I'm doing something that I think is pretty kludgey: [graph.style.symbol(gSymbol.getSymbol(), symbolattrs=[deco.filled, deco.stroked([gSymbol.getColor()])])]) which uses a class Symbol (below, with getSymbol() and getColor() member functions). I would be very happy if someone could direct me toward writing better code than what I've encapsulated in this class. This seems like a function which ought to be built in. I think the "color.palette.Rainbow" is probably a good start, but it is not documented at all in the manual. I would also appreciate a little better explanation of the "attrs"/changelist objects ("barattrs", "symbolattrs", etc.) which don't appear to be documented either (sorry if I missed them). "changecross" etc. also appear to fall in this category. It seems like these are nice lists that could be used to step through, but I'd like to see a little more explanation of how it's used, since I haven't found a good example. Thanks! This is a wonderful package. Keep up the great work. JDO class Symbol: def __init__(self): self.symbols = (graph.style.symbol.cross, graph.style.symbol.plus, graph.style.symbol.square, graph.style.symbol.triangle, graph.style.symbol.circle, graph.style.symbol.diamond, ) self.sidx = 0 self.colors = (color.rgb.red, color.rgb.green, color.rgb.blue, ) self.cidx = 0 def getSymbol(self): s = self.symbols[self.sidx] self.sidx += 1 if self.sidx > len(self.symbols): self.sidx = 0 return s def getColor(self): c = self.colors[self.cidx] self.cidx += 1 if self.cidx > len(self.colors): self.cidx = 0 return c ____________________________________________________ Start your day with Yahoo! - make it your home page http://www.yahoo.com/r/hs |