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