diff options
author | Denise sur Lya <sekhmet@lya> | 2020-11-12 23:47:51 +0100 |
---|---|---|
committer | Denise sur Lya <sekhmet@lya> | 2020-11-12 23:47:51 +0100 |
commit | b5ac625bdf312851ad3d7acf5dfdc5a94fcbf0be (patch) | |
tree | 8b956625fa147bf61cccd8e435c29c0f60864e99 /trace_courbe.py | |
parent | d5687a7f2b929f28bb8fc2de503812ec3b27cd9e (diff) | |
download | oms-b5ac625bdf312851ad3d7acf5dfdc5a94fcbf0be.tar.gz oms-b5ac625bdf312851ad3d7acf5dfdc5a94fcbf0be.tar.zst oms-b5ac625bdf312851ad3d7acf5dfdc5a94fcbf0be.zip |
V 2.2 : possibilité d'avoir des prémas (bêta)
Diffstat (limited to 'trace_courbe.py')
-rw-r--r-- | trace_courbe.py | 53 |
1 files changed, 42 insertions, 11 deletions
diff --git a/trace_courbe.py b/trace_courbe.py index a967916..d004dcb 100644 --- a/trace_courbe.py +++ b/trace_courbe.py | |||
@@ -3,7 +3,7 @@ | |||
3 | from configuration import CONFIG | 3 | from configuration import CONFIG |
4 | from gestionOMS import * | 4 | from gestionOMS import * |
5 | from gestion_unites import * | 5 | from gestion_unites import * |
6 | from gestion_donnees import calcule_max_graphique | 6 | from gestion_donnees import calcule_max_graphique, convertit_jours_vers_python |
7 | 7 | ||
8 | import matplotlib.pyplot as plt | 8 | import matplotlib.pyplot as plt |
9 | 9 | ||
@@ -24,7 +24,6 @@ def cree_figure(conf,l_jours,l_poids,typedonnee,liste_err): | |||
24 | print(conf) | 24 | print(conf) |
25 | print(conf["non_sauve"]) | 25 | print(conf["non_sauve"]) |
26 | if conf["non_sauve"].get("maxi",0) == 0: | 26 | if conf["non_sauve"].get("maxi",0) == 0: |
27 | print("bla") | ||
28 | jour_maxi = calcule_max_graphique(l_jours) | 27 | jour_maxi = calcule_max_graphique(l_jours) |
29 | else: | 28 | else: |
30 | jour_maxi = conf["non_sauve"]["maxi"]+1 | 29 | jour_maxi = conf["non_sauve"]["maxi"]+1 |
@@ -45,11 +44,27 @@ def cree_figure(conf,l_jours,l_poids,typedonnee,liste_err): | |||
45 | else: | 44 | else: |
46 | unite = conf["non_sauve"]["unite"] | 45 | unite = conf["non_sauve"]["unite"] |
47 | 46 | ||
47 | #debug("prématurité dans la config : "+conf["prematurite"],liste_err) | ||
48 | prema = int(convertit_jours_vers_python(conf["prematurite"],liste_err)) | ||
49 | ## Gestion des prémas, deux cas : | ||
50 | # Si agecorrige est oui, alors on veut juste soustraire la valeur de préma | ||
51 | # à toutes les données. | ||
52 | # Si agecorrige est non, alors on veut ajouter la valeur de préma aux courbes de référence. | ||
53 | |||
54 | debug("Prématurité : "+str(prema)+"age corrigé : "+conf["agecorrige"],liste_err) | ||
55 | |||
56 | |||
57 | if prema>0 and conf["agecorrige"] == "oui": | ||
58 | l_jours = [j-prema for j in l_jours] | ||
59 | jour_maxi = jour_maxi - prema | ||
60 | # debug("liste des jours : "+str(l_jours),liste_err) | ||
61 | else: | ||
62 | debug("bla",liste_err) | ||
48 | l_jours_conv = convertit_tableau(l_jours,unite,liste_err) | 63 | l_jours_conv = convertit_tableau(l_jours,unite,liste_err) |
49 | # Attention, comme les jours commencent à partir de 0, faut enlever 1 pour avoir la borne... | 64 | # Attention, comme les jours commencent à partir de 0, faut enlever 1 pour avoir la borne... |
50 | age_maxi = convertitunite(jour_maxi-1,unite,liste_err) | 65 | age_maxi = convertitunite(jour_maxi-1,unite,liste_err) |
51 | 66 | ||
52 | debug("cree_figure : conversion des unités ok",liste_err) | 67 | debug("cree_figure : conversion des unités ok : "+str(l_jours_conv),liste_err) |
53 | 68 | ||
54 | titre = "Courbe de "+typedonnee+" OMS" | 69 | titre = "Courbe de "+typedonnee+" OMS" |
55 | 70 | ||
@@ -79,13 +94,22 @@ def cree_figure(conf,l_jours,l_poids,typedonnee,liste_err): | |||
79 | else: | 94 | else: |
80 | erreur("Type de courbe invalide"+conf["typecourbe"],liste_err) | 95 | erreur("Type de courbe invalide"+conf["typecourbe"],liste_err) |
81 | return "" | 96 | return "" |
82 | |||
83 | debug("cree_figure : géré le type de courbe ok. Liste des data labels : "+str(liste_data_labels),liste_err) | ||
84 | debug("Fichier d'où extraire les données : "+fichier_oms,liste_err) | ||
85 | 97 | ||
86 | # Si y'a un nom on met "courbe de machin" | 98 | # Si y'a un nom on met "courbe de machin" |
87 | if conf["nom"] !="": | 99 | if conf["nom"] !="": |
88 | titre += " de " +conf["nom"] | 100 | titre += " de " +conf["nom"] |
101 | |||
102 | |||
103 | if prema>0: | ||
104 | titre+= ", préma de "+conf["prematurite"] | ||
105 | if conf["agecorrige"] == "oui": | ||
106 | titre+=" (courbe en âge corrigé)" | ||
107 | else: | ||
108 | titre+=" (courbe en âge réel, données OMS décalées)" | ||
109 | |||
110 | debug("cree_figure : géré le type de courbe ok. Liste des data labels : "+str(liste_data_labels),liste_err) | ||
111 | debug("Fichier d'où extraire les données : "+fichier_oms,liste_err) | ||
112 | |||
89 | 113 | ||
90 | 114 | ||
91 | # convertir les unités | 115 | # convertir les unités |
@@ -98,14 +122,18 @@ def cree_figure(conf,l_jours,l_poids,typedonnee,liste_err): | |||
98 | return "" | 122 | return "" |
99 | 123 | ||
100 | debug("cree_figure : on va convertir données OMS à la bonne unité",liste_err) | 124 | debug("cree_figure : on va convertir données OMS à la bonne unité",liste_err) |
101 | try: | 125 | try: |
102 | coljour = convertit_tableau(extraire_colonne(t,0,jour_maxi),unite,liste_err) | 126 | coljour= (extraire_colonne(t,0,jour_maxi)) |
127 | if prema>0 and conf["agecorrige"] != "oui": | ||
128 | coljour = [j + prema for j in coljour] | ||
129 | coljour = convertit_tableau(coljour,unite,liste_err) | ||
103 | except: | 130 | except: |
104 | erreur("Problème à la conversion du tableau OMS. jour_maxi = "+str(jour_maxi)+" unite = "+unite,liste_err) | 131 | erreur("Problème à la conversion du tableau OMS. jour_maxi = "+str(jour_maxi)+" unite = "+unite,liste_err) |
105 | return "" | 132 | return "" |
106 | 133 | ||
107 | debug("cree_figure : prête à créer la figure",liste_err) | 134 | debug("cree_figure : prête à créer la figure",liste_err) |
108 | #### La figure | 135 | #### La figure, params |
136 | |||
109 | fig = plt.figure(num=None, figsize=(conf["largeur"], conf["hauteur"]), dpi=100, facecolor=conf["couleurs"]["fond"]) | 137 | fig = plt.figure(num=None, figsize=(conf["largeur"], conf["hauteur"]), dpi=100, facecolor=conf["couleurs"]["fond"]) |
110 | plt.rcParams['axes.facecolor'] = conf["couleurs"]["fond"] | 138 | plt.rcParams['axes.facecolor'] = conf["couleurs"]["fond"] |
111 | plt.rcParams['axes.edgecolor']= conf["couleurs"]["cadretxt"] | 139 | plt.rcParams['axes.edgecolor']= conf["couleurs"]["cadretxt"] |
@@ -140,14 +168,17 @@ def cree_figure(conf,l_jours,l_poids,typedonnee,liste_err): | |||
140 | 168 | ||
141 | #warning("Jusque là ça marche",liste_err) | 169 | #warning("Jusque là ça marche",liste_err) |
142 | debug("cree_figure : prête à tracer la courbe de l'enfant",liste_err) | 170 | debug("cree_figure : prête à tracer la courbe de l'enfant",liste_err) |
143 | 171 | ||
172 | |||
173 | ### Tracé pour de bon | ||
144 | if l_jours != []: | 174 | if l_jours != []: |
145 | plt.plot(l_jours_conv,l_poids,label=conf["nom"],color=conf["couleurs"]["cadretxt"],marker='o') | 175 | plt.plot(l_jours_conv,l_poids,label=conf["nom"],color=conf["couleurs"]["cadretxt"],marker='o') |
176 | debug("Tracé de la courbe enfant, avec les jours "+str(l_jours_conv),liste_err) | ||
146 | 177 | ||
147 | plt.xlabel("Âge en "+unite,color=conf["couleurs"]["cadretxt"]) | 178 | plt.xlabel("Âge en "+unite,color=conf["couleurs"]["cadretxt"]) |
148 | plt.ylabel(typedonnee.capitalize()+" en "+CONFIG["unites_typedonnees"][typedonnee],color=conf["couleurs"]["cadretxt"]) | 179 | plt.ylabel(typedonnee.capitalize()+" en "+CONFIG["unites_typedonnees"][typedonnee],color=conf["couleurs"]["cadretxt"]) |
149 | plt.title(titre,color=conf["couleurs"]["cadretxt"]) | 180 | plt.title(titre,color=conf["couleurs"]["cadretxt"]) |
150 | plt.axis([0,age_maxi,poids_min,poids_max]) | 181 | plt.axis([min(0,l_jours_conv[0]),age_maxi,poids_min,poids_max]) |
151 | 182 | ||
152 | if conf['legende']=="oui": | 183 | if conf['legende']=="oui": |
153 | legende = plt.legend(loc=conf['positionlegende']) | 184 | legende = plt.legend(loc=conf['positionlegende']) |