#!/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