X-Git-Url: https://git.immae.eu/?p=perso%2FDenise%2Foms.git;a=blobdiff_plain;f=trace_courbe.py;h=ed5f980b584e26e47b20c9f491bfeb6961ef5183;hp=e29359f2e99ff00bef5cb4d663fc3903134a45b5;hb=7b1f383214c0a3e351bf0f369b0d1737e37980d1;hpb=32b3d06150018ed96d071cc0c6281469a880f9e0 diff --git a/trace_courbe.py b/trace_courbe.py index e29359f..ed5f980 100644 --- a/trace_courbe.py +++ b/trace_courbe.py @@ -3,7 +3,7 @@ from configuration import CONFIG import gestionOMS as oms import gestion_unites as u -from gestion_donnees import calcule_max_graphique, convertit_jours_vers_python +from gestion_donnees import calcule_max_graphique, convertit_jours_vers_python, simplifie_nom 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 @@ -46,7 +46,7 @@ def cree_figure(conf,l_jours,l_poids,typedonnee,liste_extracalculs, liste_err, e jour_maxi = conf["non_sauve"]["maxi"]+1 else: jour_maxi = conf["maxi"]+1 - + # Si on cherche à extrapoler au-delà if conf["non_sauve"]["calculextradata_type"] == typedonnee and conf["non_sauve"]["calculextradata_age"]>jour_maxi: jour_maxi = int(conf["non_sauve"]["calculextradata_age"]) +1 @@ -74,7 +74,8 @@ def cree_figure(conf,l_jours,l_poids,typedonnee,liste_extracalculs, liste_err, e debug("Prématurité : "+str(prema)+" age corrigé : "+conf["agecorrige"],liste_err) if prema>0 and conf["agecorrige"] == "oui": l_jours = [j-prema for j in l_jours] - jour_maxi = jour_maxi - prema + jour_maxi = max(jour_maxi - prema, 2) + ## Si le jour maxi est <0 on met minimum 1 jour quand même ! ###################### Conversion des unités ###########################"" @@ -174,6 +175,8 @@ def cree_figure(conf,l_jours,l_poids,typedonnee,liste_extracalculs, liste_err, e if lj != []: # pas la peine de tracer si y'a rien à tracer # Ajouter le nom de cet enfant-là listenoms.append(conf_add["nom"]) + # Le mot "courbe" doit être au pluriel du coup ! + titre = titre.replace("Courbe ", "Courbes ") lj_conv = u.convertit_tableau(lj,unite,liste_err) debug("Tracé de la courbe additionnelle de "+conf_add["nom"]+" config : "+str(conf_add), liste_err) ax.plot(lj_conv, ld, label=conf_add["nom"], color=conf_add["couleurcourbe"],marker=conf_add["symbole"]) @@ -182,9 +185,22 @@ def cree_figure(conf,l_jours,l_poids,typedonnee,liste_extracalculs, liste_err, e warning("Attention, tous les enfants n'ont pas le même sexe. La courbe de référence est celle de "+conf["nom"]+" et ne sera pas forcément pertinente pour les autres. Vous pouvez éventuellement essayer la courbe neutre. Remarque : cette alerte s'affichera quand même.", liste_err) - # Si y'a un nom on met "courbe de machin" - if listenoms != []: - titre += " de " +", ".join(listenoms) + # Si y'a un nom on met "courbe de machin, de bidule, d'alala, de truc" + for i in range(len(listenoms)): + # Mot de liaison : , ou et ? + if i>0 and i!=len(listenoms)-1: + titre += ", " + elif i>0 and i == len(listenoms) -1: + titre+= " et " + else: + titre += " " + # Est-ce que la première lettre est une voyelle ? + lettre = simplifie_nom(listenoms[i]).lower()[0] + if lettre in CONFIG["voyelles"]: + titre += "d'" + else: + titre += "de " + titre += listenoms[i] if prema>0: titre+= ", préma de "+conf["prematurite"] @@ -323,10 +339,14 @@ def cree_figure(conf,l_jours,l_poids,typedonnee,liste_extracalculs, liste_err, e poids_max = poids_max * 1.05 + ### Repères additionnels éventuels. #reperes est une liste qui contient des dictionnaires avec "typed" (type de donnée : âge, etc), "donnee" : #la donnée (en jours pour l'âge), et "texte": le texte à mettre sur le repère en question. #Pour tracer des repères verticaux (horizontaux plus tard) sur la courbe. + + debug("Échelle ok. Voir s'il y a des repères supplémentaires : "+str(conf["liste_reperes"]), liste_err) + for rep in conf["liste_reperes"]: if rep.get("trace", "") == "oui": # SI on veut tracer agec = u.convertitunite(rep["donnee"], unite, liste_err) @@ -360,14 +380,19 @@ def cree_figure(conf,l_jours,l_poids,typedonnee,liste_extracalculs, liste_err, e ax.set_yticks(echellemajeure, minor=False) ax.set_yticks(echellemineure, minor=True) - # échelle en temps - pas=u.choix_echelle_temps(unite, age_maxi) + + # Le jour minimum n'est pas forcément zéro ! + age_mini = min(l_jours[0], 0) + + pas=u.choix_echelle_temps(unite, age_maxi - age_mini) debug("pas choisis pour l'échelle en x : "+str(pas), liste_err) + + - echellemajeure = arange(0,age_maxi, pas[0]) + echellemajeure = arange(age_mini,age_maxi, pas[0]) if pas[1] >0: - echellemineure = arange(0,age_maxi, pas[1]) + echellemineure = arange(age_mini,age_maxi, pas[1]) else: echellemineure = [] ax.set_xticks(echellemajeure, minor=False)