From 32b3d06150018ed96d071cc0c6281469a880f9e0 Mon Sep 17 00:00:00 2001 From: Denise sur ardoise Date: Sat, 28 May 2022 19:22:58 +0200 Subject: =?UTF-8?q?V2.6=20:=20bugs=20d'extrapolation=20corrig=C3=A9,=20pri?= =?UTF-8?q?se=20en=20compte=20des=20dates=20dans=20les=20donn=C3=A9es,=20r?= =?UTF-8?q?ep=C3=A8res,=20et=20extra.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- trace_courbe.py | 31 ++++++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-) (limited to 'trace_courbe.py') diff --git a/trace_courbe.py b/trace_courbe.py index c39f265..e29359f 100644 --- a/trace_courbe.py +++ b/trace_courbe.py @@ -6,6 +6,7 @@ import gestion_unites as u from gestion_donnees import calcule_max_graphique, convertit_jours_vers_python from gestion_erreurs import debug, erreur, warning from calculs_extrapole import calcule_donnee_extrapolee, calcule_age_extrapole, interpole_lineaire, interpole_lineaire_ordonnee, formate_resultat_donnee, formate_resultat_age, formate_interpole, formate_extrapole +import datetime from numpy import arange @@ -227,7 +228,11 @@ def cree_figure(conf,l_jours,l_poids,typedonnee,liste_extracalculs, liste_err, e # On va prendre les extrapolations de la dernière donnée jusqu'à l fin du graphe debut_extr = int(l_jours[-conf["non_sauve"]["nbextradata"]]) i_debut_extr = dates_extrapole.index(debut_extr) - i_fin_extr = dates_extrapole.index(jour_maxi) + if jour_maxi >= dates_extrapole[-1]: + i_fin_extr = len(dates_extrapole) -1 + else: + i_fin_extr = dates_extrapole.index(jour_maxi) + print("bla", i_debut_extr, i_fin_extr) # Voilà ce qu'on veut tracer dates_extrapole_trace = dates_extrapole[i_debut_extr:i_fin_extr+1] donnees_extrapole_trace = donnees_extrapole[i_debut_extr:i_fin_extr+1] @@ -248,11 +253,11 @@ def cree_figure(conf,l_jours,l_poids,typedonnee,liste_extracalculs, liste_err, e else: message=formate_interpole() - texte = formate_resultat_donnee(conf["non_sauve"]["calculextradata_age"], r, typedonnee, message, liste_err) + texte = formate_resultat_donnee(conf["non_sauve"]["calculextradata_age"], conf["non_sauve"]["calculextradata_date"], r, typedonnee, message, liste_err) debug("calcul de la donnée extrapolée : "+texte, liste_err) if texte!="": liste_extracalculs.append(texte) - print(liste_extracalculs) + #print(liste_extracalculs) # Ajouter le trait ? if conf["non_sauve"]["calculextradata_trace"] == "oui": dessine_guides(conf["non_sauve"]["calculextradata_age"], r, conf["couleurs"]["cadretxt"], unite, ax, liste_err) @@ -261,14 +266,23 @@ def cree_figure(conf,l_jours,l_poids,typedonnee,liste_extracalculs, liste_err, e if conf["non_sauve"]["calculextratemps_type"] == typedonnee: # interpolation r = interpole_lineaire_ordonnee(l_jours,l_poids,conf["non_sauve"]["calculextratemps_val"], liste_err) + if type(conf["naissance"]) == datetime.date: + rdate = conf["naissance"] + datetime.timedelta(days=r) + else: + rdate = None + if r==-1: # ça sera donc une extrapolation - r = calcule_age_extrapole(dates_extrapole, donnees_extrapole, conf["non_sauve"]["calculextratemps_val"], liste_err) + r = calcule_age_extrapole(dates_extrapole, donnees_extrapole, conf["non_sauve"]["calculextratemps_val"], liste_err) + if type(conf["naissance"]) == datetime.date: + rdate = conf["naissance"] + datetime.timedelta(days=round(r)) + else: + rdate = None message=formate_extrapole(conf["non_sauve"]["nbextradata"]) else: message=formate_interpole() - - texte = formate_resultat_age(r, conf["non_sauve"]["calculextratemps_val"], typedonnee, message, liste_err) + print(r, rdate) + texte = formate_resultat_age(r, rdate, conf["non_sauve"]["calculextratemps_val"], typedonnee, message, liste_err) #r = calcule_age_extrapole(dates_extrapole, donnees_extrapole, conf["non_sauve"]["calculextratemps_val"], typedonnee, liste_err) if texte!="": @@ -318,7 +332,10 @@ def cree_figure(conf,l_jours,l_poids,typedonnee,liste_extracalculs, liste_err, e agec = u.convertitunite(rep["donnee"], unite, liste_err) # Tracé de la ligne verticale ax.vlines(agec, poids_min, poids_max, linestyles="dashed", color=conf["couleurs"]["cadretxt"]) - # Tracé éventuel du texte + # date à afficher ? + if rep["affichedate"] == "oui" and rep["date"] != "": + ax.text(agec, poids_min,rep["date"]+" ", rotation=90, verticalalignment='top', horizontalalignment='center', color=conf["couleurs"]["cadretxt"], fontstyle="italic") + # Si y'a un texte à afficher if rep["texte"] != "": ax.text(agec, poids_min, " "+rep["texte"], rotation=90, verticalalignment='bottom', horizontalalignment='right', color=conf["couleurs"]["cadretxt"]) -- cgit v1.2.3