"""
Script assurant une régression linéaire élémentaire pour des données sans barres d'incertitude
(privilégier la version avec incertitudes)
"""

import numpy as np
import numpy.polynomial.polynomial as poly
import matplotlib.pyplot as plt

plt.rcParams['xtick.labelsize']= 14
plt.rcParams['ytick.labelsize']= 14
plt.rcParams['font.size']= 14
plt.rcParams['lines.markersize']= 9
plt.rcParams['lines.linewidth']= 2
plt.rcParams['lines.markeredgewidth']= 2
plt.rcParams['axes.linewidth']= 1
plt.rcParams['xtick.major.width']= 1

## Importation des données

donnees = np.loadtxt('Exemple.txt',skiprows=2)
X = donnees[:,0]
Y = donnees[:,1]


## Régression linéaire

params = poly.polyfit(X,Y,1)
pente = params[1]
ord_org = params[0]
print('pente : ',pente)
print("ord origine :",ord_org)


## Tracé du graphe

plt.figure()

# Tracé des points
plt.plot(X, Y,'o', color='black')
plt.xlabel('temps (s)')
plt.ylabel('tension (V)')
#Ajuster si nécessaire les limites du graphe
#plt.xlim((0,2))
#plt.ylim((0,2))

# Tracé du modèle
liste_x = np.linspace(min(X),max(X),1000)
modele = ord_org + pente*liste_x
plt.plot(liste_x,modele,'-',color='darkred')

plt.tight_layout()
plt.show()

