# -*- coding: utf-8 -*-
# Created on Sat Oct 09 07:20:12 2021
# @author: mhebding
# graphX le script pour tracer un graphe experimental

import matplotlib.pyplot as plt

def lecture(nom):
    """ lecture fichier txt et stockage dans 2 listes """
    liste_1, liste_2 = [], [] # initialisation listes de stockage retournees a la fin
    with open(nom, "r") as fichier :
        lignes = fichier.readlines() # recuperation lignes en str
    N = len(lignes) # nombre de lignes
    for i in range(1,N): # pour chaque ligne sauf entete
        lignes[i] = lignes[i].replace(',', '.') # remplace , par . si besoin
        lignes[i] = lignes[i].split() # separation des colonnes par tab sinon ajouter ";" dans argument de split
        liste_1.append(float(lignes[i][0])) # colonne 1 stockee dans liste 1 en float
        liste_2.append(float(lignes[i][1])) # colonne 2 stockee dans liste 2 en float
    return liste_1, liste_2

def graphe(nom):
    """ trace le graphe de la colonne 2 en fonction de la colonne 1 sur le .txt """
    liste_x, liste_y = lecture(nom) # recuperation des donnees par fonction lecture
    plt.clf () # efface la figure courante
    plt.plot(liste_x , liste_y, "+") # trace y en fonction de x avec un "+" car experimental
    plt.title ("Charge d'un condensateur")
    plt.xlabel("t (s)")
    plt.ylabel("uC (V)")
    plt.savefig('exp_1') # enregistre image png
    plt.show()

# exemple d'utilisation
graphe('RC_120.txt')

# emplacement du fichier .txt
# afin de savoir ou placer le fichier .txt executer le bout de code suivant
# import os
# os.getcwd() # renvoie le dossier de travail courant "current working directory"