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