#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Created on Mon May 18 08:59:11 2020 @author: sekhmet """ from gestion_erreurs import * from configuration import * 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" elif z<0: return str(z)+"z" else: return "+"+str(z)+"z" liste_data_labels_p = [(nocol,affichepercentile(pc),degrade(pc)) for (nocol,pc) in liste_data_choisie_p] liste_data_labels_z = [(nocol,afficheecarttype(z),degrade((z+3)/3*50) ) for (nocol,z) in liste_data_choisie_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): """ extrait une colonne d'un tableau double, de taille maximum maxi""" t = [] for i in range( min(len(table),maxi) ): t.append(table[i][ncol]) return t