def fig_creator_md_inter(name, coeff_list): """ Création de figure pour models_interractive.py : Représentation des différents modèles et de la courbe réelle du nombre cumulé de cas de la COVID-19. :param name: str -> Nom du pays :param coeff_list: list -> Liste des paramètres des différents modèles dans cet ordre : [r_log, r_rich, alpha, beta_SIR, gamma_SIR, beta_SEIR, sigma_SEIR, gamma_SEIR] :return: plotly.graph_objs._figure.Figure """ fig = make_subplots(rows=1, cols=1) title = "Nombre cumulé d'infectés - COVID-19" fig.update_layout(title={ 'text': title, 'y': 0.9, 'x': 0.5, 'xanchor': 'center', 'yanchor': 'top' }, title_font_size=30, xaxis={'title': 'Date (jour/mois)'}, yaxis={'title': 'Nombre d\'individu'}) matrix = give_CC_matrix(name) sp = CC_starting_point(name) ### Défintion des paramètres ### # Nombre initial d'infectés. C0 = matrix[0] # Nombre cumulatif final d'infectés. K = matrix[len(matrix) - 1] # Intervalles de temps. t = np.arange(sp, len(dt.Time_ext), 1) # Population totale. N = dt.Totpop[name] # Nombre initial d'individus infectés, infectieux et guéris. E0, I0, R0 = 0, C0, 0 # Nombre d'individu susceptibles d'attrapper la maladie. S0 = N - E0 - I0 - R0 # Modèles calculant le nombre cumulé d'infectés. C1 = md.logistique(C0, K, coeff_list[0], t) # modèle logistique C2 = md.richards(C0, K, coeff_list[1], t, coeff_list[2]) # modèle de Richards C3 = md.SIR(S0, I0, R0, t, N, coeff_list[3], coeff_list[4]) # modèle SIR C4 = md.SEIR(S0, E0, I0, R0, t, N, coeff_list[5], coeff_list[6], coeff_list[7]) # modèle SEIR ### Ajout des courbes ### fig.add_scatter(x=dt.Time_ext[sp:], y=matrix, name=name) fig.add_scatter(x=dt.Time_ext[sp:], y=C1, name="Modèle logistique") fig.add_scatter(x=dt.Time_ext[sp:], y=C2, name="Modèle de Richards") fig.add_scatter(x=dt.Time_ext[sp:], y=C3, name="Modèle SIR") fig.add_scatter(x=dt.Time_ext[sp:], y=C4, name="Modèle SEIR") return fig
def f_richards_minimization(coeff, name): """ Obtention d'une valeur représentative de l'erreur entre les observations réelles du nombre cumulé de cas de COVID-19 et le modèle de Richards défini à partir des paramètres de la fonction. :param coeff: numpy.ndarray :param name: str -> Nom du pays :return: float """ sp = int(GRCC_matrix_startCC([name])[0][0]) C0 = GRCC_matrix_startCC([name])[0][1] observations = give_CC_matrix(name) K = np.max(observations) t = np.arange(sp, len(observations) + sp) C = md.richards(C0, K, coeff[0], t, coeff[1]) return error(observations, C)
def update_graph(EGR_log, EGR_rich, Rcoeff, b_SIR, g_SIR, b_SEIR, s_SEIR, g_SEIR): # Nombre cumulé d'infectés. C1 = logistique(C0, K, EGR_log, t1) # modèle logistique C2 = richards(C0, K, EGR_rich, t1, Rcoeff) # modèle de Richards C3 = SIR(S0, I0, R0, t1, N, b_SIR, g_SIR) # modèle SIR C4 = SEIR(S0, E0, I0, R0, t1, N, b_SEIR, s_SEIR, g_SEIR) # modèle SEIR new_fig = make_subplots(rows=1, cols=1) new_fig.update_layout(title={ 'text': "Nombre cumulatif d'infectés de la COVID 19", 'y': 0.9, 'x': 0.5, 'xanchor': 'center', 'yanchor': 'top' }, title_font_size=30, xaxis={'title': 'Date (jour/mois)'}, yaxis={'title': 'Nombre d\'individu'}) new_fig.add_scatter(x=dt.Time, y=dt.France_C, name="Données France CSSE") new_fig.add_scatter(x=dt.Time, y=matrix_2, name="Données France OxCGRT") # new_fig.add_scatter( # x=dt.Time, # y=dt.Germany_C, name="Données Allemagne") # # # new_fig.add_scatter( # x=dt.Time[2:], # y=C1, name="Modèle logistique") # # new_fig.add_scatter( # x=dt.Time[2:], # y=C2, name="Modèle de Richards") # # new_fig.add_scatter( # x=dt.Time[2:], # y=C3, name="Modèle SIR") # # new_fig.add_scatter( # x=dt.Time[2:], # y=C4, name="Modèle SEIR") return new_fig
t1 = np.arange(2, len(dt.Time), 1) # Coefficient du modèle de Richards. alpha1 = 1.0685873 # Population totale. N = 64081000 # Nombre initial d'individus infectés, infectieux et guéris. E0, I0, R0 = 0, 2, 0 # Nombre d'individu susceptibles d'attrapper la maladie. S0 = N - E0 - I0 - R0 # Taux de transmission et taux de guérison par jours. beta_SIR, gamma_SIR = 9.24884336, 9.12660313 # modèle SIR beta_SEIR, sigma_SEIR, gamma_SEIR = 44.3754473, 2.75653902, 41.72852292 # modèle SEIR # Nombre cumulé d'infectés. C1 = logistique(C0, K, r_log, t1) # modèle logistique C2 = richards(C0, K, r_rich, t1, alpha1) # modèle de Richards C3 = SIR(S0, I0, R0, t1, N, beta_SIR, gamma_SIR) # modèle SIR C4 = SEIR(S0, E0, I0, R0, t1, N, beta_SEIR, sigma_SEIR, gamma_SEIR) # modèle SEIR data = converter("data_text/{}".format("France")) matrix = [] for t in range(len(data)): matrix += [data[t][27]] matrix_2 = matrix[21:-8] df = pd.read_csv( 'https://raw.githubusercontent.com/plotly/datasets/master/gapminderDataFiveYear.csv' ) external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']