]>
Commit | Line | Data |
---|---|---|
5679dfd0 DL |
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 | """ | |
a680b2f7 DL |
8 | #from gestion_erreurs import erreur, warning, debug |
9 | from gestion_couleurs import degrade_choix | |
5679dfd0 DL |
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" | |
5679dfd0 | 38 | else: |
fd69b6b5 DL |
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""" | |
915e90bb DL |
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] | |
fd69b6b5 | 51 | return liste_data_labels_p,liste_data_labels_z |
5679dfd0 DL |
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 | ||
cf0d4c8c | 84 | def extraire_colonne(table,ncol,maxi=-1): |
5679dfd0 DL |
85 | """ extrait une colonne d'un tableau double, de taille maximum maxi""" |
86 | t = [] | |
cf0d4c8c DL |
87 | if maxi==-1: |
88 | maxi = len(table) | |
5679dfd0 DL |
89 | for i in range( min(len(table),maxi) ): |
90 | t.append(table[i][ncol]) | |
91 | return t | |
92 |