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

Reply via email to