bouton pour changer les dates bougé
[perso/Denise/oms.git] / gestionOMS.py
CommitLineData
5679dfd0
DL
1#!/usr/bin/env python3
2# -*- coding: utf-8 -*-
3"""
4Created on Mon May 18 08:59:11 2020
5
6@author: sekhmet
7"""
8from gestion_erreurs import *
fd69b6b5 9from gestion_couleurs import *
5679dfd0
DL
10
11import csv
12
13
14
15###################################
16# Section où on prépare le graphique
17# Fonction qui définit le dégradé
18def 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
30def affichepercentile(pc):
31 if pc==50:
32 return "50% (Médiane)"
33 else:
34 return str(pc)+"%"
35def 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
46def 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
60def 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
69def 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
84def 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