petites modifs sur le texte de la page
[perso/Denise/oms.git] / gestionOMS.py
1 #!/usr/bin/env python3
2 # -*- coding: utf-8 -*-
3 """
4 Created on Mon May 18 08:59:11 2020
5
6 @author: sekhmet
7 """
8 from gestion_erreurs import *
9 from gestion_couleurs import *
10
11 import csv
12
13
14
15 ###################################
16 # Section où on prépare le graphique
17 # Fonction qui définit le dégradé
18 def degrade(nb):
19 """
20 prend en arg un float entre 0 et 100 et renvoie un zoli dégradé (triplet rgb)
21 """
22 if nb<50:
23 # degrade sur le bleu
24 return (0,1*nb/50,1-(nb/50))
25 else:
26 # dégradé du vert vers le rouge
27 return ((nb-50)/50,1-(nb-50)/50,0)
28
29 # la liste des numéros de colonne, avec leur label et leur couleur
30 def affichepercentile(pc):
31 if pc==50:
32 return "50% (Médiane)"
33 else:
34 return str(pc)+"%"
35 def afficheecarttype(z):
36 if z==0:
37 return "Moyenne"
38 else:
39 #return ("z = "+str(z))
40 if z>0:
41 chaine = r"$+"+str(z)+" \sigma$"
42 else:
43 chaine = r"$"+str(z)+"\sigma$"
44 return (chaine)
45
46 def renvoie_liste_labels(conf,liste_data_choisie_p,liste_data_choisie_z,liste_err):
47 """ fabrique les deux listes de labels OMS"""
48 #warning(str(conf),liste_err)
49 liste_data_labels_p = [(nocol,affichepercentile(pc),degrade_choix(conf["couleurs"]["courbe1"],conf["couleurs"]["courbe2"],conf["couleurs"]["courbe3"],pc)) for (nocol,pc) in liste_data_choisie_p]
50 liste_data_labels_z = [(nocol,afficheecarttype(z),degrade_choix(conf["couleurs"]["courbe1"],conf["couleurs"]["courbe2"],conf["couleurs"]["courbe3"],(z+3)/3*50) ) for (nocol,z) in liste_data_choisie_z]
51 return liste_data_labels_p,liste_data_labels_z
52
53 #liste_data_labels= liste_data_labels_z
54
55
56
57
58 ##################### outils pour lire les données OMS
59
60 def convertit_ligne(ligne):
61 """ transforme une table en table de nombres"""
62 t = []
63 for elt in ligne:
64 t.append(float(elt))
65 return t
66
67
68
69 def lire_fichier_csv(fichier):
70 """ lire un fichier csv et le renvoyer en table"""
71 table=[]
72 with open(fichier, "r") as fichier_csv:
73 reader_notes = csv.reader(fichier_csv,delimiter="\t")
74 debut = True
75 for ligne in reader_notes:
76 if (not debut):
77 table.append(convertit_ligne(ligne))
78 #table.append(ligne)
79 else:
80 debut = False
81 return table
82
83
84 def extraire_colonne(table,ncol,maxi):
85 """ extrait une colonne d'un tableau double, de taille maximum maxi"""
86 t = []
87 for i in range( min(len(table),maxi) ):
88 t.append(table[i][ncol])
89 return t
90