X-Git-Url: https://git.immae.eu/?p=perso%2FDenise%2Foms.git;a=blobdiff_plain;f=trace_courbe.py;fp=trace_courbe.py;h=9cb4845c658c63191caaf39e49546f7ff63704fd;hp=fab64718c0f7508795f13fea2854b268e5b3d19e;hb=685a5f75f63d483d09a593ec69efad882a63a34e;hpb=c2fe511bb9e6974cc267b8926a47b1fa81b37da3 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 from gestionOMS import * from gestion_unites import * from gestion_donnees import calcule_max_graphique, convertit_jours_vers_python +from numpy import arange import matplotlib.pyplot as plt @@ -139,10 +140,11 @@ def cree_figure(conf,l_jours,l_poids,typedonnee,liste_err): plt.rcParams['ytick.color'] = conf["couleurs"]["cadretxt"] plt.rcParams['grid.color'] = conf["couleurs"]["grille"] plt.rcParams['legend.edgecolor'] = conf["couleurs"]["grille"] + ax = plt.axes() #Tracé des courbes OMS for (i,label,couleur) in liste_data_labels: - plt.plot(coljour,extraire_colonne(t,i,jour_maxi),label=label,color=couleur) + ax.plot(coljour,extraire_colonne(t,i,jour_maxi),label=label,color=couleur) #warning("colonne"+str(i)+str(label)+str(couleur),liste_err) 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): poids_min = max(0,poids_min-1) #max : +5% poids_max = poids_max * 1.05 - + debug("cree_figure : prête à tracer la courbe de l'enfant",liste_err) ### Tracé pour de bon if l_jours != []: - plt.plot(l_jours_conv,l_poids,label=conf["nom"],color=conf["couleurs"]["cadretxt"],marker='o') + ax.plot(l_jours_conv,l_poids,label=conf["nom"],color=conf["couleurs"]["cadretxt"],marker='o') debug("Tracé de la courbe enfant, avec les jours "+str(l_jours_conv),liste_err) #### extrapolatios éventuelles @@ -192,6 +194,48 @@ def cree_figure(conf,l_jours,l_poids,typedonnee,liste_err): else: debug("On ne trace pas de courbe enfant", liste_err) + debug("Début de la gestion de l'échelle", liste_err) + ### échelle à régler + + if conf["non_sauve"]["grilleamelio"] == "oui": + + pas=choix_echelle_data(typedonnee, poids_max) + # data_min_arrondie + minechelle = int(poids_min/pas[0])*pas[0] + + debug("pas choisis pour l'échelle en y : "+str(pas), liste_err) + echellemajeure = arange(minechelle, poids_max, pas[0]) + + if pas[1] >0: + echellemineure = arange(minechelle, poids_max, pas[1]) + else: + echellemineure = [] + + ax.set_yticks(echellemajeure, minor=False) + ax.set_yticks(echellemineure, minor=True) + + # échelle en temps + pas=choix_echelle_temps(unite, age_maxi) + debug("pas choisis pour l'échelle en x : "+str(pas), liste_err) + + echellemajeure = arange(0,age_maxi, pas[0]) + if pas[1] >0: + echellemineure = arange(0,age_maxi, pas[1]) + else: + echellemineure = [] + ax.set_xticks(echellemajeure, minor=False) + ax.set_xticks(echellemineure, minor=True) + + + #### Aspect du graphique + + debug("On commende la déco du graphique", liste_err) + + # La grille + ax.grid(conf["grille"]=="oui") + ax.grid(conf["grille"] == "oui", which="minor", linestyle="--") + + plt.xlabel("Âge en "+unite,color=conf["couleurs"]["cadretxt"]) plt.ylabel(typedonnee.capitalize()+" en "+CONFIG["unites_typedonnees"][typedonnee],color=conf["couleurs"]["cadretxt"]) #print("bla") @@ -207,7 +251,7 @@ def cree_figure(conf,l_jours,l_poids,typedonnee,liste_err): if conf['legende']=="oui": legende = plt.legend(loc=conf['positionlegende']) plt.setp(legende.get_texts(), color=conf["couleurs"]["cadretxt"]) - plt.grid(conf["grille"]=="oui") + fig.tight_layout() @@ -216,6 +260,9 @@ def cree_figure(conf,l_jours,l_poids,typedonnee,liste_err): + +### Pour extrapoler la courbe + def prolongecourbe(tableauOMS, date, donnee, nouvdates, typecourbe, liste_err): """ tableauOMS est le ableau des données OMS. date et donnee sont la date (jours) et la dernière donnée d'où on extrapole. On veut les extrapolations à nouvdate