Bonjour à tous!
J'écris un code pour afficher une régression linéaire, mais un message d'erreur étrange apparait lors de l'affichage d'une courbe alors que les autres s'affichent très bien.
Voici le passage en question :
J'ai enlvé une partie qui correspond aux autres valeurs mais le probleme est le meme pour les 3: le code se déroule bien jusqu'a la ligne "plt.plot(X,Y_b,'--',label=r'$Régression linéaire$')" ou un message d'erreur s'affiche dans la console :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 # -*- coding: utf-8 -*- #importation des bibliothèques et fonctions nécessaires: import numpy as np import matplotlib.pyplot as plt from scipy import stats from math import pi, cos #déclaration des valeurs experimentales et des incertitudes: theta=np.array([90,80,70,60,50,40,30,20,10]) for i in range (len(theta)): theta[i]=((cos((theta[i]*pi)/180))**2)*15 I_blanc=np.array([0,0,0.4,1.3,2.5,3.8,5.0,6.2,6.9]) err_I=[0.5]*10 err_theta=[0]*10 #affichage du coefficient directeur et de l'ordonnée à l'origine #des régressions linéaires pour les différentes valeurs: pente_b,ordonnee_b,r_b,p_b,d_b=stats.linregress(theta,I_blanc) print ("I_blanc :",pente_b,'x+',ordonnee_b) print ('coefficient de correlation R^2',r_b**2,"\n") def linereg (X,a,b): """arguments: un tableau de valeur + un coefficient directeur + une ordonnée a l'origine retourne "Y=a.X+b" """ return (a*X+b) #on presente les 3 courbes l'une sous l'autre: plt.subplot(3,1,1) X=np.linspace(theta[0],theta[-1],100) Y_b=linereg(X,pente_b,ordonnee_b) plt.figure(1) plt.plot(theta,I_blanc,'bo') plt.plot(X,Y_b,'--',label=r'$Régression linéaire$') plt.errorbar(theta,I_blanc,err_theta,err_I,fmt=u'+') plt.xlabel=(r'$cos(theta)^2$') plt.ylabel=(r'$I_(blanc)$') plt.legend(loc=4) plt.grid() plt.axis([0,15,0,8]) plt.title("sans filtre") plt.show()J'ai d'abord trouvé sur internet qu'il manquait la premiere ligne de mon code ,ie "# -*- coding: utf-8 -*-" je l'ai alors rajoutée mais toujours rien, de meme les lignes plt.xlabel et ylabel ainsi que errorbar et legend ne semblent pas fonctionner.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 >>> plt.plot(X,Y_r,'--',label=r'$Régression linéaire$') Traceback (most recent call last): File "<stdin>", line 1, in <module> File "C:\Python27\lib\site-packages\matplotlib\pyplot.py", line 3099, in plot ret = ax.plot(*args, **kwargs) File "C:\Python27\lib\site-packages\matplotlib\axes\_axes.py", line 1373, in plot for line in self._get_lines(*args, **kwargs): File "C:\Python27\lib\site-packages\matplotlib\axes\_base.py", line 304, in _grab_next_args for seg in self._plot_args(remaining, kwargs): File "C:\Python27\lib\site-packages\matplotlib\axes\_base.py", line 292, in _plot_args seg = func(x[:, j % ncx], y[:, j % ncy], kw, kwargs) File "C:\Python27\lib\site-packages\matplotlib\axes\_base.py", line 244, in _makeline self.set_lineprops(seg, **kwargs) File "C:\Python27\lib\site-packages\matplotlib\axes\_base.py", line 186, in set_lineprops func(val) File "C:\Python27\lib\site-packages\matplotlib\artist.py", line 777, in set_label self._label = '%s' % (s, ) UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 2: ordinal not in range(128) >>>
Auriez-vous une idée des corrections à apporter a mon code ?
Merci d'avance !![]()
Partager