summaryrefslogblamecommitdiff
path: root/gestionOMS.py
blob: 8c2b91001c8deae5d8926bea644d1f1de0a633f9 (plain) (tree)
1
2
3
4
5
6
7
8
9






                                   

                                                   



























                                                                                   
         








                                                                                   


                                                                                                                                                                                                            
                                                  































                                                             
                                         

                                                                          

                         



                                           
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Mon May 18 08:59:11 2020

@author: sekhmet
"""
#from gestion_erreurs import erreur, warning, debug
from gestion_couleurs import degrade_choix

import csv



###################################
# Section où on prépare le graphique
# Fonction qui définit le dégradé
def degrade(nb):
    """
    prend en arg un float entre 0 et 100 et renvoie un zoli dégradé (triplet rgb)
    """
    if nb<50:
        # degrade sur le bleu 
        return (0,1*nb/50,1-(nb/50))
    else:
        # dégradé du vert vers le rouge
        return ((nb-50)/50,1-(nb-50)/50,0)
    
# la liste des numéros de colonne, avec leur label et leur couleur
def affichepercentile(pc):
    if pc==50:
        return "50% (Médiane)"
    else:
        return str(pc)+"%"
def afficheecarttype(z):
    if z==0:
        return "Moyenne"
    else:
        #return ("z = "+str(z))
        if z>0:
            chaine = r"$+"+str(z)+" \sigma$"
        else:
            chaine = r"$"+str(z)+"\sigma$"
        return (chaine)

def renvoie_liste_labels(conf,liste_data_choisie_p,liste_data_choisie_z,liste_err):
    """ fabrique les deux listes de labels OMS"""
     #warning(str(conf),liste_err)
    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]
    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]
    return liste_data_labels_p,liste_data_labels_z
    
#liste_data_labels= liste_data_labels_z




##################### outils pour lire les données OMS

def convertit_ligne(ligne):
    """ transforme une table en table de nombres"""
    t = []
    for elt in ligne:
        t.append(float(elt))
    return t



def lire_fichier_csv(fichier):
    """ lire un fichier csv et le renvoyer en table"""
    table=[]
    with open(fichier, "r") as fichier_csv:
        reader_notes = csv.reader(fichier_csv,delimiter="\t")
        debut = True
        for ligne in reader_notes:
            if (not debut):
                table.append(convertit_ligne(ligne))
                #table.append(ligne)
            else:
                debut = False
    return table


def extraire_colonne(table,ncol,maxi=-1):
    """ extrait une colonne d'un tableau double, de taille maximum maxi"""
    t = []
    if maxi==-1:
        maxi = len(table)
    for i in range( min(len(table),maxi) ):
        t.append(table[i][ncol])
    return t