From 5679dfd03c9761283e3a36d6d09798aaa334e1e9 Mon Sep 17 00:00:00 2001 From: Denise sur Lya Date: Sun, 14 Jun 2020 23:20:48 +0200 Subject: =?UTF-8?q?Cr=C3=A9ation=20du=20d=C3=A9p=C3=B4t,=20site=20=C3=A0?= =?UTF-8?q?=20peu=20pr=C3=A8s=20fonctionnel?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- trace_courbe.py | 96 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 trace_courbe.py (limited to 'trace_courbe.py') diff --git a/trace_courbe.py b/trace_courbe.py new file mode 100644 index 0000000..c15960f --- /dev/null +++ b/trace_courbe.py @@ -0,0 +1,96 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +from configuration import * +from gestionOMS import * +from gestion_unites import * +import matplotlib.pyplot as plt + +def cree_figure(conf,l_jours,l_poids,liste_err): + + + 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 + else: + jour_maxi = int(6*jours_dans_mois) # si pas de données, arbitrairement on met ça + else: + jour_maxi = conf["maxi"]+1 + + jour_maxi = min(jour_maxi,jours_maxi_courbe) + + if conf["unite"] == "": + conf["unite"] = choix_unite(jour_maxi) + + l_jours_conv = convertit_tableau(l_jours,conf["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) + + + titre = "Courbe de poids OMS" + + if conf["typecourbe"] == "P": + # percentiles + liste_data_labels = liste_data_labels_p + if conf["sexe"] == "M": + fichier_oms = f_poids_perc_garcon + titre += " (percentiles, garçon)" + else: + fichier_oms = f_poids_perc_fille + titre += " (percentiles, fille)" + elif conf["typecourbe"] == "Z": + liste_data_labels = liste_data_labels_z + if conf["sexe"] == "G": + fichier_oms = f_poids_z_garcon + titre += " (moyenne et écarts-types, garçon)" + else: + fichier_oms = f_poids_z_fille + titre += " (moyenne et écarts-types, fille)" + + # Si y'a un nom on met "courbe de machin" + if conf["nom"] !="": + titre += " de " +conf["nom"] + + + # convertir les unités + + #### On extrait les données des courbes, et on convertit les jours dans l'unité voulues + t = lire_fichier_csv(fichier_oms) + coljour = convertit_tableau(extraire_colonne(t,0,jour_maxi),conf["unite"],liste_err) + + + #### La figure + fig = plt.figure(num=None, figsize=(conf["largeur"], conf["hauteur"]), dpi=100, facecolor='w', edgecolor='k') + + for (i,label,couleur) in liste_data_labels: + plt.plot(coljour,extraire_colonne(t,i,jour_maxi),label=label,color=couleur) + + # On extrait la valeur min et la valeur max des poids + (colonne_min,_,_) = liste_data_labels[0] + (colonne_max,_,_) = liste_data_labels[-1] + + poids_min = min(extraire_colonne(t,colonne_min,jour_maxi)) + poids_max = max(extraire_colonne(t,colonne_max,jour_maxi)) + if l_jours != []: + poids_min = min(min(l_poids),poids_min) + poids_max = max(max(l_poids),poids_max) + # On ajuste un peu ces min et max + # min : valeur min -1kg + poids_min = max(0,poids_min-1) + #max : +5% + poids_max = poids_max * 1.05 + + if l_jours != []: + plt.plot(l_jours_conv,l_poids,label=conf["nom"],color="black",marker='o') + + plt.xlabel("Âge en "+conf["unite"]) + plt.ylabel("Poids en kg") + plt.title(titre) + plt.axis([0,age_maxi,poids_min,poids_max]) + + if conf['legende']=="oui": + plt.legend(loc=conf['positionlegende']) + plt.grid(conf["grille"]=="oui") + + fig.tight_layout() + return fig \ No newline at end of file -- cgit v1.2.3