diff options
Diffstat (limited to 'trace_courbe.py')
-rw-r--r-- | trace_courbe.py | 55 |
1 files changed, 51 insertions, 4 deletions
diff --git a/trace_courbe.py b/trace_courbe.py index fab6471..9cb4845 100644 --- a/trace_courbe.py +++ b/trace_courbe.py | |||
@@ -4,6 +4,7 @@ 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, convertit_jours_vers_python | 6 | from gestion_donnees import calcule_max_graphique, convertit_jours_vers_python |
7 | from numpy import arange | ||
7 | 8 | ||
8 | import matplotlib.pyplot as plt | 9 | import matplotlib.pyplot as plt |
9 | 10 | ||
@@ -139,10 +140,11 @@ def cree_figure(conf,l_jours,l_poids,typedonnee,liste_err): | |||
139 | plt.rcParams['ytick.color'] = conf["couleurs"]["cadretxt"] | 140 | plt.rcParams['ytick.color'] = conf["couleurs"]["cadretxt"] |
140 | plt.rcParams['grid.color'] = conf["couleurs"]["grille"] | 141 | plt.rcParams['grid.color'] = conf["couleurs"]["grille"] |
141 | plt.rcParams['legend.edgecolor'] = conf["couleurs"]["grille"] | 142 | plt.rcParams['legend.edgecolor'] = conf["couleurs"]["grille"] |
143 | ax = plt.axes() | ||
142 | 144 | ||
143 | #Tracé des courbes OMS | 145 | #Tracé des courbes OMS |
144 | for (i,label,couleur) in liste_data_labels: | 146 | for (i,label,couleur) in liste_data_labels: |
145 | plt.plot(coljour,extraire_colonne(t,i,jour_maxi),label=label,color=couleur) | 147 | ax.plot(coljour,extraire_colonne(t,i,jour_maxi),label=label,color=couleur) |
146 | #warning("colonne"+str(i)+str(label)+str(couleur),liste_err) | 148 | #warning("colonne"+str(i)+str(label)+str(couleur),liste_err) |
147 | 149 | ||
148 | debug("cree_figure : tracé des courbes OMS ok",liste_err) | 150 | debug("cree_figure : tracé des courbes OMS ok",liste_err) |
@@ -166,13 +168,13 @@ def cree_figure(conf,l_jours,l_poids,typedonnee,liste_err): | |||
166 | poids_min = max(0,poids_min-1) | 168 | poids_min = max(0,poids_min-1) |
167 | #max : +5% | 169 | #max : +5% |
168 | poids_max = poids_max * 1.05 | 170 | poids_max = poids_max * 1.05 |
169 | 171 | ||
170 | 172 | ||
171 | debug("cree_figure : prête à tracer la courbe de l'enfant",liste_err) | 173 | debug("cree_figure : prête à tracer la courbe de l'enfant",liste_err) |
172 | 174 | ||
173 | ### Tracé pour de bon | 175 | ### Tracé pour de bon |
174 | if l_jours != []: | 176 | if l_jours != []: |
175 | plt.plot(l_jours_conv,l_poids,label=conf["nom"],color=conf["couleurs"]["cadretxt"],marker='o') | 177 | ax.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) | 178 | debug("Tracé de la courbe enfant, avec les jours "+str(l_jours_conv),liste_err) |
177 | 179 | ||
178 | #### extrapolatios éventuelles | 180 | #### extrapolatios éventuelles |
@@ -192,6 +194,48 @@ def cree_figure(conf,l_jours,l_poids,typedonnee,liste_err): | |||
192 | else: | 194 | else: |
193 | debug("On ne trace pas de courbe enfant", liste_err) | 195 | debug("On ne trace pas de courbe enfant", liste_err) |
194 | 196 | ||
197 | debug("Début de la gestion de l'échelle", liste_err) | ||
198 | ### échelle à régler | ||
199 | |||
200 | if conf["non_sauve"]["grilleamelio"] == "oui": | ||
201 | |||
202 | pas=choix_echelle_data(typedonnee, poids_max) | ||
203 | # data_min_arrondie | ||
204 | minechelle = int(poids_min/pas[0])*pas[0] | ||
205 | |||
206 | debug("pas choisis pour l'échelle en y : "+str(pas), liste_err) | ||
207 | echellemajeure = arange(minechelle, poids_max, pas[0]) | ||
208 | |||
209 | if pas[1] >0: | ||
210 | echellemineure = arange(minechelle, poids_max, pas[1]) | ||
211 | else: | ||
212 | echellemineure = [] | ||
213 | |||
214 | ax.set_yticks(echellemajeure, minor=False) | ||
215 | ax.set_yticks(echellemineure, minor=True) | ||
216 | |||
217 | # échelle en temps | ||
218 | pas=choix_echelle_temps(unite, age_maxi) | ||
219 | debug("pas choisis pour l'échelle en x : "+str(pas), liste_err) | ||
220 | |||
221 | echellemajeure = arange(0,age_maxi, pas[0]) | ||
222 | if pas[1] >0: | ||
223 | echellemineure = arange(0,age_maxi, pas[1]) | ||
224 | else: | ||
225 | echellemineure = [] | ||
226 | ax.set_xticks(echellemajeure, minor=False) | ||
227 | ax.set_xticks(echellemineure, minor=True) | ||
228 | |||
229 | |||
230 | #### Aspect du graphique | ||
231 | |||
232 | debug("On commende la déco du graphique", liste_err) | ||
233 | |||
234 | # La grille | ||
235 | ax.grid(conf["grille"]=="oui") | ||
236 | ax.grid(conf["grille"] == "oui", which="minor", linestyle="--") | ||
237 | |||
238 | |||
195 | plt.xlabel("Âge en "+unite,color=conf["couleurs"]["cadretxt"]) | 239 | plt.xlabel("Âge en "+unite,color=conf["couleurs"]["cadretxt"]) |
196 | plt.ylabel(typedonnee.capitalize()+" en "+CONFIG["unites_typedonnees"][typedonnee],color=conf["couleurs"]["cadretxt"]) | 240 | plt.ylabel(typedonnee.capitalize()+" en "+CONFIG["unites_typedonnees"][typedonnee],color=conf["couleurs"]["cadretxt"]) |
197 | #print("bla") | 241 | #print("bla") |
@@ -207,7 +251,7 @@ def cree_figure(conf,l_jours,l_poids,typedonnee,liste_err): | |||
207 | if conf['legende']=="oui": | 251 | if conf['legende']=="oui": |
208 | legende = plt.legend(loc=conf['positionlegende']) | 252 | legende = plt.legend(loc=conf['positionlegende']) |
209 | plt.setp(legende.get_texts(), color=conf["couleurs"]["cadretxt"]) | 253 | plt.setp(legende.get_texts(), color=conf["couleurs"]["cadretxt"]) |
210 | plt.grid(conf["grille"]=="oui") | 254 | |
211 | 255 | ||
212 | fig.tight_layout() | 256 | fig.tight_layout() |
213 | 257 | ||
@@ -216,6 +260,9 @@ def cree_figure(conf,l_jours,l_poids,typedonnee,liste_err): | |||
216 | 260 | ||
217 | 261 | ||
218 | 262 | ||
263 | |||
264 | ### Pour extrapoler la courbe | ||
265 | |||
219 | def prolongecourbe(tableauOMS, date, donnee, nouvdates, typecourbe, liste_err): | 266 | def prolongecourbe(tableauOMS, date, donnee, nouvdates, typecourbe, liste_err): |
220 | """ tableauOMS est le ableau des données OMS. date et donnee sont la date (jours) | 267 | """ tableauOMS est le ableau des données OMS. date et donnee sont la date (jours) |
221 | et la dernière donnée d'où on extrapole. On veut les extrapolations à nouvdate | 268 | et la dernière donnée d'où on extrapole. On veut les extrapolations à nouvdate |