From: Andre W. <and...@ph...> - 2003-06-03 08:01:31
|
Hi Gert, On 03.06.03, Gert Ingold wrote: > I want to draw colored symbols in a graph where the color of each symbol > is determined via the datafile, i.e. I have a datafile consisting of three > columns where the first column determines the x-value, the second column the > y-value and the third value (between 0 and 1) the color. I tried to use > a color palette but somehow I did not succeed. Is there a simple way to > accomplish this task? Unfortunately, the default symbol style does not (yet?!) provide access to modify those stroke attributes by some additional data given in a data file. Nevertheless, it is easy to implement such a feature by creating a specialized subclass of the symbol class of the graph module. By that, you have to write only a few lines: from pyx import * class mysymbol(graph.symbol): def __init__(self, palette, **args): self.palette = palette graph.symbol.__init__(self, **args) def othercolumnkey(self, key, index): if key == "color": self.colorindex = index else: graph.symbol.othercolumnkey(self, key, index) def _drawsymbol(self, g, x, y, point=None): self.symbolattrs.append(self.palette.getcolor(point[self.colorindex])) graph.symbol._drawsymbol(self, g, x, y, point) del self.symbolattrs[-1] g = graph.graphxy(width=10) g.plot(graph.data("test.dat", x=1, y=2, color=3), mysymbol(color.palette.Rainbow)) g.writetofile("test") The test.dat file should look like: 0 0 0.0 1 1 0.1 2 2 0.2 3 3 0.3 4 4 0.4 5 5 0.5 6 6 0.6 7 7 0.7 8 8 0.8 9 9 0.9 10 10 1.0 I should mention, that a few features are lacking here which could be added easily. Namely the iteration thru this style ends up with instances of the parent class symbol and graph keys are poorly supported (they will end up in regular symbols from the parent class). Additionally I should add, that I consider the interfaces between these components of the graph to be not at all stabilized. The are not even documented yet. Hopefully things will get better in the future ... André -- by _ _ _ Andre.Wobst@Physik.Uni-Augsburg.DE / \ \ / ) http://www.physik.uni-augsburg.de/~wobsta/ / _ \ \/\/ / PyX - High quality PostScript figures with Python & TeX (_/ \_)_/\_/ visit http://pyx.sourceforge.net/ |