diff options
author | Denise sur ardoise <denise@ardoise> | 2022-05-28 19:22:58 +0200 |
---|---|---|
committer | Denise sur ardoise <denise@ardoise> | 2022-05-28 19:22:58 +0200 |
commit | 32b3d06150018ed96d071cc0c6281469a880f9e0 (patch) | |
tree | 3efb0ab0550878489a00c278bc1440cb6e513546 /trace_courbe.py | |
parent | d4daf461c8317e3f9e89df00d5f65bb59e40911d (diff) | |
download | oms-32b3d06150018ed96d071cc0c6281469a880f9e0.tar.gz oms-32b3d06150018ed96d071cc0c6281469a880f9e0.tar.zst oms-32b3d06150018ed96d071cc0c6281469a880f9e0.zip |
V2.6 : bugs d'extrapolation corrigé, prise en compte des dates dans les données, repères, et extra.
Diffstat (limited to 'trace_courbe.py')
-rw-r--r-- | trace_courbe.py | 31 |
1 files changed, 24 insertions, 7 deletions
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 | |||
6 | from gestion_donnees import calcule_max_graphique, convertit_jours_vers_python | 6 | from gestion_donnees import calcule_max_graphique, convertit_jours_vers_python |
7 | from gestion_erreurs import debug, erreur, warning | 7 | from gestion_erreurs import debug, erreur, warning |
8 | 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 | 8 | 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 |
9 | import datetime | ||
9 | 10 | ||
10 | from numpy import arange | 11 | from numpy import arange |
11 | 12 | ||
@@ -227,7 +228,11 @@ def cree_figure(conf,l_jours,l_poids,typedonnee,liste_extracalculs, liste_err, e | |||
227 | # On va prendre les extrapolations de la dernière donnée jusqu'à l fin du graphe | 228 | # On va prendre les extrapolations de la dernière donnée jusqu'à l fin du graphe |
228 | debut_extr = int(l_jours[-conf["non_sauve"]["nbextradata"]]) | 229 | debut_extr = int(l_jours[-conf["non_sauve"]["nbextradata"]]) |
229 | i_debut_extr = dates_extrapole.index(debut_extr) | 230 | i_debut_extr = dates_extrapole.index(debut_extr) |
230 | i_fin_extr = dates_extrapole.index(jour_maxi) | 231 | if jour_maxi >= dates_extrapole[-1]: |
232 | i_fin_extr = len(dates_extrapole) -1 | ||
233 | else: | ||
234 | i_fin_extr = dates_extrapole.index(jour_maxi) | ||
235 | print("bla", i_debut_extr, i_fin_extr) | ||
231 | # Voilà ce qu'on veut tracer | 236 | # Voilà ce qu'on veut tracer |
232 | dates_extrapole_trace = dates_extrapole[i_debut_extr:i_fin_extr+1] | 237 | dates_extrapole_trace = dates_extrapole[i_debut_extr:i_fin_extr+1] |
233 | donnees_extrapole_trace = donnees_extrapole[i_debut_extr:i_fin_extr+1] | 238 | 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 | |||
248 | else: | 253 | else: |
249 | message=formate_interpole() | 254 | message=formate_interpole() |
250 | 255 | ||
251 | texte = formate_resultat_donnee(conf["non_sauve"]["calculextradata_age"], r, typedonnee, message, liste_err) | 256 | texte = formate_resultat_donnee(conf["non_sauve"]["calculextradata_age"], conf["non_sauve"]["calculextradata_date"], r, typedonnee, message, liste_err) |
252 | debug("calcul de la donnée extrapolée : "+texte, liste_err) | 257 | debug("calcul de la donnée extrapolée : "+texte, liste_err) |
253 | if texte!="": | 258 | if texte!="": |
254 | liste_extracalculs.append(texte) | 259 | liste_extracalculs.append(texte) |
255 | print(liste_extracalculs) | 260 | #print(liste_extracalculs) |
256 | # Ajouter le trait ? | 261 | # Ajouter le trait ? |
257 | if conf["non_sauve"]["calculextradata_trace"] == "oui": | 262 | if conf["non_sauve"]["calculextradata_trace"] == "oui": |
258 | dessine_guides(conf["non_sauve"]["calculextradata_age"], r, conf["couleurs"]["cadretxt"], unite, ax, liste_err) | 263 | 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 | |||
261 | if conf["non_sauve"]["calculextratemps_type"] == typedonnee: | 266 | if conf["non_sauve"]["calculextratemps_type"] == typedonnee: |
262 | # interpolation | 267 | # interpolation |
263 | r = interpole_lineaire_ordonnee(l_jours,l_poids,conf["non_sauve"]["calculextratemps_val"], liste_err) | 268 | r = interpole_lineaire_ordonnee(l_jours,l_poids,conf["non_sauve"]["calculextratemps_val"], liste_err) |
269 | if type(conf["naissance"]) == datetime.date: | ||
270 | rdate = conf["naissance"] + datetime.timedelta(days=r) | ||
271 | else: | ||
272 | rdate = None | ||
273 | |||
264 | if r==-1: | 274 | if r==-1: |
265 | # ça sera donc une extrapolation | 275 | # ça sera donc une extrapolation |
266 | r = calcule_age_extrapole(dates_extrapole, donnees_extrapole, conf["non_sauve"]["calculextratemps_val"], liste_err) | 276 | r = calcule_age_extrapole(dates_extrapole, donnees_extrapole, conf["non_sauve"]["calculextratemps_val"], liste_err) |
277 | if type(conf["naissance"]) == datetime.date: | ||
278 | rdate = conf["naissance"] + datetime.timedelta(days=round(r)) | ||
279 | else: | ||
280 | rdate = None | ||
267 | message=formate_extrapole(conf["non_sauve"]["nbextradata"]) | 281 | message=formate_extrapole(conf["non_sauve"]["nbextradata"]) |
268 | else: | 282 | else: |
269 | message=formate_interpole() | 283 | message=formate_interpole() |
270 | 284 | print(r, rdate) | |
271 | texte = formate_resultat_age(r, conf["non_sauve"]["calculextratemps_val"], typedonnee, message, liste_err) | 285 | texte = formate_resultat_age(r, rdate, conf["non_sauve"]["calculextratemps_val"], typedonnee, message, liste_err) |
272 | 286 | ||
273 | #r = calcule_age_extrapole(dates_extrapole, donnees_extrapole, conf["non_sauve"]["calculextratemps_val"], typedonnee, liste_err) | 287 | #r = calcule_age_extrapole(dates_extrapole, donnees_extrapole, conf["non_sauve"]["calculextratemps_val"], typedonnee, liste_err) |
274 | if texte!="": | 288 | if texte!="": |
@@ -318,7 +332,10 @@ def cree_figure(conf,l_jours,l_poids,typedonnee,liste_extracalculs, liste_err, e | |||
318 | agec = u.convertitunite(rep["donnee"], unite, liste_err) | 332 | agec = u.convertitunite(rep["donnee"], unite, liste_err) |
319 | # Tracé de la ligne verticale | 333 | # Tracé de la ligne verticale |
320 | ax.vlines(agec, poids_min, poids_max, linestyles="dashed", color=conf["couleurs"]["cadretxt"]) | 334 | ax.vlines(agec, poids_min, poids_max, linestyles="dashed", color=conf["couleurs"]["cadretxt"]) |
321 | # Tracé éventuel du texte | 335 | # date à afficher ? |
336 | if rep["affichedate"] == "oui" and rep["date"] != "": | ||
337 | ax.text(agec, poids_min,rep["date"]+" ", rotation=90, verticalalignment='top', horizontalalignment='center', color=conf["couleurs"]["cadretxt"], fontstyle="italic") | ||
338 | # Si y'a un texte à afficher | ||
322 | if rep["texte"] != "": | 339 | if rep["texte"] != "": |
323 | ax.text(agec, poids_min, " "+rep["texte"], rotation=90, verticalalignment='bottom', horizontalalignment='right', color=conf["couleurs"]["cadretxt"]) | 340 | ax.text(agec, poids_min, " "+rep["texte"], rotation=90, verticalalignment='bottom', horizontalalignment='right', color=conf["couleurs"]["cadretxt"]) |
324 | 341 | ||