Régression linéaire
Entrée de couples, calcul et affichage de la droite de moindres carrés
<sxh python; title : fit_linear.py> #!/usr/bin/env python # -*- coding: utf-8 -*- # version un peu aménagée du travail de BD et EH, ba2 chimie 2012-2013
import matplotlib.pyplot as plt import pylab import numpy
def droite_moindre_carre(x):
return a * x + b
tabx = [] taby = [] # Avoir le jeu de data
while True:
x = raw_input("Enter X ") y = raw_input("Enter Y ") tabx.append(float(x)) taby.append(float(y)) another = raw_input("Continue ? y/n \n") if another != "y": break
# le remplir tant que l'utilisateur n'a pas mis autre chose que y comme réponse
temp_min = 0.1 temp_max = 20 #axes horizontaux
a,b = pylab.polyfit(tabx, taby, 1) # calcul du moindre carre
x_moindre_carre = numpy.linspace(min(tabx), max(tabx), 100) #linspace(a,b,n) ⇒ fournit une liste de valeurs de a à b, en n étapes y_moindre_carre = map(droite_moindre_carre, x_moindre_carre) # calcul des valeurs de la courbe de moidnres carrés # map ⇒ Utilise une fonction sur chaque element d'une liste
plt.axis([temp_min, temp_max,0,100]) plt.plot(tabx, taby, 'or') # o ⇒ point, r ⇒ red plt.plot(x_moindre_carre, y_moindre_carre, 'b') # b = blue, pas de o ⇒ line plt.show() # trace le graphique </sxh>