2 # -*- coding: utf-8 -*-
3 from configuration
import *
4 from gestionOMS
import *
5 from gestion_unites
import *
6 import matplotlib
.pyplot
as plt
8 def cree_figure(conf
,l_jours
,l_poids
,liste_err
):
13 jour_maxi
= max(l_jours
)# pas la peine d'aller très au delà du jour max
14 jour_maxi
= int(jour_maxi
* 1.1)+3 # on rajoute un peu
16 jour_maxi
= int(6*jours_dans_mois
) # si pas de données, arbitrairement on met ça
18 jour_maxi
= conf
["maxi"]+1
20 jour_maxi
= min(jour_maxi
,jours_maxi_courbe
)
22 if conf
["unite"] == "":
23 conf
["unite"] = choix_unite(jour_maxi
)
25 l_jours_conv
= convertit_tableau(l_jours
,conf
["unite"],liste_err
)
26 # Attention, comme les jours commencent à partir de 0, faut enlever 1 pour avoir la borne...
27 age_maxi
= convertitunite(jour_maxi
-1,conf
["unite"],liste_err
)
30 titre
= "Courbe de poids OMS"
32 if conf
["typecourbe"] == "P":
34 liste_data_labels
= liste_data_labels_p
35 if conf
["sexe"] == "M":
36 fichier_oms
= f_poids_perc_garcon
37 titre
+= " (percentiles, garçon)"
39 fichier_oms
= f_poids_perc_fille
40 titre
+= " (percentiles, fille)"
41 elif conf
["typecourbe"] == "Z":
42 liste_data_labels
= liste_data_labels_z
43 if conf
["sexe"] == "G":
44 fichier_oms
= f_poids_z_garcon
45 titre
+= " (moyenne et écarts-types, garçon)"
47 fichier_oms
= f_poids_z_fille
48 titre
+= " (moyenne et écarts-types, fille)"
50 # Si y'a un nom on met "courbe de machin"
52 titre
+= " de " +conf
["nom"]
55 # convertir les unités
57 #### On extrait les données des courbes, et on convertit les jours dans l'unité voulues
58 t
= lire_fichier_csv(fichier_oms
)
59 coljour
= convertit_tableau(extraire_colonne(t
,0,jour_maxi
),conf
["unite"],liste_err
)
63 fig
= plt
.figure(num
=None, figsize
=(conf
["largeur"], conf
["hauteur"]), dpi
=100, facecolor
='w', edgecolor
='k')
65 for (i
,label
,couleur
) in liste_data_labels
:
66 plt
.plot(coljour
,extraire_colonne(t
,i
,jour_maxi
),label
=label
,color
=couleur
)
68 # On extrait la valeur min et la valeur max des poids
69 (colonne_min
,_
,_
) = liste_data_labels
[0]
70 (colonne_max
,_
,_
) = liste_data_labels
[-1]
72 poids_min
= min(extraire_colonne(t
,colonne_min
,jour_maxi
))
73 poids_max
= max(extraire_colonne(t
,colonne_max
,jour_maxi
))
75 poids_min
= min(min(l_poids
),poids_min
)
76 poids_max
= max(max(l_poids
),poids_max
)
77 # On ajuste un peu ces min et max
78 # min : valeur min -1kg
79 poids_min
= max(0,poids_min
-1)
81 poids_max
= poids_max
* 1.05
84 plt
.plot(l_jours_conv
,l_poids
,label
=conf
["nom"],color
="black",marker
='o')
86 plt
.xlabel("Âge en "+conf
["unite"])
87 plt
.ylabel("Poids en kg")
89 plt
.axis([0,age_maxi
,poids_min
,poids_max
])
91 if conf
['legende']=="oui":
92 plt
.legend(loc
=conf
['positionlegende'])
93 plt
.grid(conf
["grille"]=="oui")