from configuration import CONFIG
from gestionOMS import *
from gestion_unites import *
+from gestion_donnees import calcule_max_graphique
import matplotlib.pyplot as plt
# Essentiellement, la fonction qui trace la courbe
-def cree_figure(conf,l_jours,l_poids,liste_err):
+def cree_figure(conf,l_jours,l_poids,typedonnee,liste_err):
debug("debut de cree_figure",liste_err)
try:
liste_data_labels_p,liste_data_labels_z = renvoie_liste_labels(conf,CONFIG["liste_data_choisie_p"],CONFIG["liste_data_choisie_z"],liste_err)
erreur("bug avec liste data labels",liste_err)
return ""
+ # maxi saisi par l'utilisateur ?
if conf["maxi"] ==0:
- if l_jours != []:
- jour_maxi = max(l_jours)# pas la peine d'aller très au delà du jour max
- jour_maxi = int(jour_maxi* 1.1)+3 # on rajoute un peu
+ # Est-ce qu'on a donné un maxi quand même (car même échelle) ?
+ print(conf)
+ print(conf["non_sauve"])
+ if conf["non_sauve"].get("maxi",0) == 0:
+ print("bla")
+ jour_maxi = calcule_max_graphique(l_jours)
else:
- jour_maxi = CONFIG["jours_defaut_donneesvides"] # si pas de données, arbitrairement on met ça
+ jour_maxi = conf["non_sauve"]["maxi"]+1
else:
jour_maxi = conf["maxi"]+1
jour_maxi = max(CONFIG["jours_mini_courbe"],min(jour_maxi,CONFIG["jours_maxi_courbe"]))
debug("cree_figure : gestion du jour max ok : "+str(jour_maxi),liste_err)
- if conf["unite"] == "":
- conf["unite"] = choix_unite(jour_maxi)
-
- l_jours_conv = convertit_tableau(l_jours,conf["unite"],liste_err)
+ # si l'unité n'est pas précisée, ni en "non sauvé" ni par l'utilisateur
+ if conf["unite"] == "" and conf["non_sauve"].get("unite","") == "":
+ unite = choix_unite(jour_maxi)
+ debug("Unité non précisée, on choisit "+unite,liste_err)
+ elif conf["unite"] != "":
+ unite = conf["unite"]
+ else:
+ unite = conf["non_sauve"]["unite"]
+
+ l_jours_conv = convertit_tableau(l_jours,unite,liste_err)
# Attention, comme les jours commencent à partir de 0, faut enlever 1 pour avoir la borne...
- age_maxi = convertitunite(jour_maxi-1,conf["unite"],liste_err)
+ age_maxi = convertitunite(jour_maxi-1,unite,liste_err)
debug("cree_figure : conversion des unités ok",liste_err)
- titre = "Courbe de poids OMS"
+ titre = "Courbe de "+typedonnee+" OMS"
if conf["typecourbe"] == "P":
# percentiles
liste_data_labels = liste_data_labels_p
if conf["sexe"] == "M":
- fichier_oms = CONFIG["fichiersOMS"]["perc_garcon"]#f_poids_perc_garcon
+ fichier_oms = CONFIG["fichiersOMS"][typedonnee]["perc_garcon"]#f_poids_perc_garcon
titre += " (percentiles, garçon)"
elif conf["sexe"] == "F":
- fichier_oms = CONFIG["fichiersOMS"]["perc_fille"]
+ fichier_oms = CONFIG["fichiersOMS"][typedonnee]["perc_fille"]
titre += " (percentiles, fille)"
else:
- fichier_oms = CONFIG["fichiersOMS"]["perc_mixte"]
+ fichier_oms = CONFIG["fichiersOMS"][typedonnee]["perc_mixte"]
titre += " (percentiles)"
elif conf["typecourbe"] == "Z":
liste_data_labels = liste_data_labels_z
if conf["sexe"] == "M":
- fichier_oms = CONFIG["fichiersOMS"]["z_garcon"]
+ fichier_oms = CONFIG["fichiersOMS"][typedonnee]["z_garcon"]
titre += " (moyenne et écarts-types, garçon)"
elif conf["sexe"] == "F":
- fichier_oms = CONFIG["fichiersOMS"]["z_fille"]
+ fichier_oms = CONFIG["fichiersOMS"][typedonnee]["z_fille"]
titre += " (moyenne et écarts-types, fille)"
else:
- fichier_oms = CONFIG["fichiersOMS"]["z_mixte"]
+ fichier_oms = CONFIG["fichiersOMS"][typedonnee]["z_mixte"]
titre += " (moyenne et écarts-types)"
else:
erreur("Type de courbe invalide"+conf["typecourbe"],liste_err)
debug("cree_figure : on va convertir données OMS à la bonne unité",liste_err)
try:
- coljour = convertit_tableau(extraire_colonne(t,0,jour_maxi),conf["unite"],liste_err)
+ coljour = convertit_tableau(extraire_colonne(t,0,jour_maxi),unite,liste_err)
except:
erreur("Problème à la conversion du tableau OMS. jour_maxi = "+str(jour_maxi)+" unite = "+unite,liste_err)
return ""
if l_jours != []:
plt.plot(l_jours_conv,l_poids,label=conf["nom"],color=conf["couleurs"]["cadretxt"],marker='o')
- plt.xlabel("Âge en "+conf["unite"],color=conf["couleurs"]["cadretxt"])
- plt.ylabel("Poids en kg",color=conf["couleurs"]["cadretxt"])
+ plt.xlabel("Âge en "+unite,color=conf["couleurs"]["cadretxt"])
+ plt.ylabel(typedonnee.capitalize()+" en "+CONFIG["unites_typedonnees"][typedonnee],color=conf["couleurs"]["cadretxt"])
plt.title(titre,color=conf["couleurs"]["cadretxt"])
plt.axis([0,age_maxi,poids_min,poids_max])