I see that you first build your array and then display it at the end... is it possible in matplotlib to update the plot while the class is evolving? like:
f.evolve(6) f.display() f.evolve(.27) f.display() f.evolve(10) f.display() f.evolve(2) f.display() best regards, simone 2009/1/19 C Lewis <chle...@nature.berkeley.edu>: > #Skeleton example of a taking snapshots of an evolving class > import pylab as p > from math import log > class foo: > def __init__(self): > self.red = 0 > self.green = 1 > self.age = 0 > self.history = ([self.age],[self.red],[self.green]) > > def snapshot(self): > self.history[0].append(self.age) > self.history[1].append(self.red) > self.history[2].append(self.green) > > def evolve(self, time): > self.red = self.red + time/2 > self.green = self.green * log(time) > self.age = self.age + time > self.snapshot() > > def display(self): > > p.plot(self.history[0],self.history[1],self.history[0],self.history[2]) > p.show() > > if __name__ == '__main__': > f = foo() > f.snapshot() > f.evolve(6); f.evolve(.27);f.evolve(10);f.evolve(2) > print f.history > f.display() > > On Jan 18, 2009, at 3:18 PM, Simone Gabbriellini wrote: > >> thanks, it is exactly what I need... I have undestood the logic, I >> build a plot, put my traits values into an array and then I call the >> add_current_state_to_plot function to update the plot with the new >> values... >> >> I am an absolute beginner of matplotlib, can you give me a little >> example of add_current_state_to_plot function? Because I don't know >> the right way to update: do I have to pass all the array, or just the >> new values? >> >> best regards, >> simone >> >> 2009/1/18 C Lewis <chle...@nature.berkeley.edu>: >>> >>> Guessing about what you want: >>> >>> Does the class change with time? that is, perhaps you have a class foo, >>> and >>> foo evolves, and you would like to plot a history of some traits of foo, >>> but >>> at any given moment foo only contains its current state? >>> >>> If so, I think you need to have a function in foo, or even a separate >>> class, >>> that takes `snapshots' of foo's traits on one schedule, and stores them, >>> and >>> can also plot them on some schedule. Choosing how to do that is more a >>> python problem than a matplotlib problem; personally, I have something >>> set >>> up so class 'profile' has functions to 'setup_plot' and >>> 'add_current_state_to_plot', and I just have to choose when to call the >>> latter. >>> >>> Or you can just store the values and plot at the end; once you have one >>> list >>> of the times, and a separate list of each trait's history at those times, >>> you're set up for matplotlib plotting, e.g. >>> >>> from pylab import * >>> plot(times, traitA, times, traitB, times, traitC) >>> show() >>> >>> although, while looking for a simple example, I found this: >>> >>> >>> http://matplotlib.sourceforge.net/examples/pylab_examples/plotfile_demo.html >>> >>> which is not totally simple but looks great. >>> >>> >>> &C >>> >>> On Jan 18, 2009, at 9:36 AM, Simone Gabbriellini wrote: >>> >>>> Dear List, >>>> >>>> I have some variables I want to plot... the values of those variable >>>> change in time... I would like to plot the result with a traditional >>>> line plot >>>> >>>> those variables are traits of a class (don't know if this can make a >>>> difference...) >>>> >>>> is there any example of this with matplotlib? >>>> >>>> best regards, >>>> simone gabbriellini >>>> >>>> >>>> >>>> ------------------------------------------------------------------------------ >>>> This SF.net email is sponsored by: >>>> SourcForge Community >>>> SourceForge wants to tell your story. >>>> http://p.sf.net/sfu/sf-spreadtheword >>>> _______________________________________________ >>>> Matplotlib-users mailing list >>>> Matplotlib-users@lists.sourceforge.net >>>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users >>> >>> > > Chloe Lewis > Graduate student, Amundson Lab > Division of Ecosystem Sciences, ESPM > University of California, Berkeley > 137 Mulford Hall - #3114 > Berkeley, CA 94720-3114 > chle...@nature.berkeley.edu > > ------------------------------------------------------------------------------ This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword _______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users