Foros del Web » Programando para Internet » Python »

Matplotlib animacion de grafico

Estas en el tema de Matplotlib animacion de grafico en el foro de Python en Foros del Web. Saludos Código: import math import numpy import matplotlib.pyplot h = 0.83 transmission_coeff = 2e-5 latency_time = 5. # days infectious_time = 5. # days end_time ...
  #1 (permalink)  
Antiguo 31/03/2014, 21:29
 
Fecha de Ingreso: junio-2013
Mensajes: 9
Antigüedad: 10 años, 9 meses
Puntos: 0
Matplotlib animacion de grafico

Saludos

Código:
import math
import numpy
import matplotlib.pyplot

h = 0.83  
transmission_coeff = 2e-5 

latency_time = 5. # days       
infectious_time = 5. # days                     
end_time = 80.0 # days
num_steps = int(end_time / h)                                                       
times = h * numpy.array(range(num_steps + 1))  
ks=6.0  
ki=6.0   

def seir_model():

    s = numpy.zeros(num_steps + 1)                      
    e = numpy.zeros(num_steps + 1)
    i = numpy.zeros(num_steps + 1)
    r = numpy.zeros(num_steps + 1)


    s[0] = 10000 -10 -60
    e[0] = 60                      
    i[0] = 10
    r[0] = 0
                                        

    for step in range(num_steps):
    	s2e=h*transmission_coeff*ks*s[step]*i[step]
    	e2i=h*transmission_coeff*ki*s[step-infectious_time]*i[step-infectious_time]
    	i2r=h*recovery_rate*i[step]
    	r2s=h*reinfection_coeff*r[step]
    	s[step+1]=s[step]-s2e+r2s
    	e[step+1]=e[step]+s2e-e2i
    	i[step+1]=i[step]+e2i-death_coeff*i[step]-i2r
    	r[step+1]=r[step]+i2r-r2s

        return s, i, r, e


s, i, r, e = seir_model() 


s_plot = matplotlib.pyplot.plot(times, s, label = 'S')
e_plot = matplotlib.pyplot.plot(times, e, label = 'E')
i_plot = matplotlib.pyplot.plot(times, i, label = 'I')
r_plot = matplotlib.pyplot.plot(times, r, label = 'R')
matplotlib.pyplot.legend(('S', 'E', 'I', 'R'), loc = 'upper right')
    
axes = matplotlib.pyplot.gca()
axes.set_xlabel('Time in days')
axes.set_ylabel('Number of persons')
matplotlib.pyplot.xlim(xmin = 0.)
matplotlib.pyplot.ylim(ymin = 0.)
matplotlib.pyplot.show()


El problema es que me sale el grafico de una solo vez y lo que quiero es que valla graficando como si estuviera animado, ver como se van formando las curvas, hay alguna forma simple de hacer esto, agradezco la ayuda!

Agredeciendo de antemano
Santiago
  #2 (permalink)  
Antiguo 01/04/2014, 09:51
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Matplotlib animacion de grafico

No puedo decirte cómo hacerlo porque nunca lo hice, pero matplotlib tiene un submódulo animation que debería servirte.


Saludos.
  #3 (permalink)  
Antiguo 01/04/2014, 22:50
 
Fecha de Ingreso: junio-2013
Mensajes: 9
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: Matplotlib animacion de grafico

Gracias por comentario, ya revise el modulo y los ejemplos ya que esto me genera una lista de datos en s, i, e y r y aunque lo revise no comprendo muy bien exactamente como aplico la animación. Si me pueden dar un poco mas de luz, estaria muy agradecido.

Saludos

Etiquetas: animacion, grafico
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:24.