Partage
  • Partager sur Facebook
  • Partager sur Twitter

Erreur avec Pylab

Affichage d'une onde

Anonyme
1 janvier 2021 à 16:30:56

Suite à plusieurs essais de ma part je n'arrive toujours pas à faire fonctionner le script. J'ai installé pip puis matplotlib dans le terminal ensuite j'ai crée un environnement python 3.9.1 et 2.7.1.Le premier ne fonctionne pas l'autre m'amène à la photo nommé "capture.PNG" avec le texte et l'erreur suivante :

*************************************
* Propagation d'une onde périodique *
*  Mouvements en fonction du temps  *
*************************************

("Amplitude de l'onde : A =", 5.0, 'mm')
("P\xc3\xa9riode de l'onde : T =", 50.0, 'ms')
("  d'o\xc3\xb9 la fr\xc3\xa9quence f =", 20.0, 'Hz')
("C\xc3\xa9l\xc3\xa9rit\xc3\xa9 de l'onde : v =", 40.0, 'cm/s')
("  d'o\xc3\xb9 la longueur d'onde de l'onde : lambda =", 2.0, 'cm')

Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Python27\Lib\lib-tk\Tkinter.py", line 1547, in __call__
    return self.func(*args)
  File "C:\Users\leoro\Documents\env python\venv 1\lib\site-packages\matplotlib\backends\_backend_tk.py", line 227, in resize
    self.draw()
  File "C:\Users\leoro\Documents\env python\venv 1\lib\site-packages\matplotlib\backends\backend_tkagg.py", line 12, in draw
    super(FigureCanvasTkAgg, self).draw()
  File "C:\Users\leoro\Documents\env python\venv 1\lib\site-packages\matplotlib\backends\backend_agg.py", line 437, in draw
    self.figure.draw(self.renderer)
  File "C:\Users\leoro\Documents\env python\venv 1\lib\site-packages\matplotlib\artist.py", line 55, in draw_wrapper
    return draw(artist, renderer, *args, **kwargs)
  File "C:\Users\leoro\Documents\env python\venv 1\lib\site-packages\matplotlib\figure.py", line 1493, in draw
    renderer, self, artists, self.suppressComposite)
  File "C:\Users\leoro\Documents\env python\venv 1\lib\site-packages\matplotlib\image.py", line 141, in _draw_list_compositing_images
    a.draw(renderer)
  File "C:\Users\leoro\Documents\env python\venv 1\lib\site-packages\matplotlib\artist.py", line 55, in draw_wrapper
    return draw(artist, renderer, *args, **kwargs)
  File "C:\Users\leoro\Documents\env python\venv 1\lib\site-packages\matplotlib\axes\_base.py", line 2635, in draw
    mimage._draw_list_compositing_images(renderer, self, artists)
  File "C:\Users\leoro\Documents\env python\venv 1\lib\site-packages\matplotlib\image.py", line 141, in _draw_list_compositing_images
    a.draw(renderer)
  File "C:\Users\leoro\Documents\env python\venv 1\lib\site-packages\matplotlib\artist.py", line 55, in draw_wrapper
    return draw(artist, renderer, *args, **kwargs)
  File "C:\Users\leoro\Documents\env python\venv 1\lib\site-packages\matplotlib\text.py", line 706, in draw
    bbox, info, descent = textobj._get_layout(renderer)
  File "C:\Users\leoro\Documents\env python\venv 1\lib\site-packages\matplotlib\text.py", line 305, in _get_layout
    clean_line, ismath = self.is_math_text(line, self.get_usetex())
  File "C:\Users\leoro\Documents\env python\venv 1\lib\site-packages\matplotlib\text.py", line 1190, in is_math_text
    if cbook.is_math_text(s):
  File "C:\Users\leoro\Documents\env python\venv 1\lib\site-packages\matplotlib\cbook\__init__.py", line 2040, in is_math_text
    "matplotlib display text must have all code points < 128 or use "
ValueError: matplotlib display text must have all code points < 128 or use Unicode strings
Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Python27\Lib\lib-tk\Tkinter.py", line 1547, in __call__
    return self.func(*args)
  File "C:\Python27\Lib\lib-tk\Tkinter.py", line 596, in callit
    func(*args)
  File "C:\Users\leoro\Documents\env python\venv 1\lib\site-packages\matplotlib\backends\_backend_tk.py", line 310, in idle_draw
    self.draw()
  File "C:\Users\leoro\Documents\env python\venv 1\lib\site-packages\matplotlib\backends\backend_tkagg.py", line 12, in draw
    super(FigureCanvasTkAgg, self).draw()
  File "C:\Users\leoro\Documents\env python\venv 1\lib\site-packages\matplotlib\backends\backend_agg.py", line 437, in draw
    self.figure.draw(self.renderer)
  File "C:\Users\leoro\Documents\env python\venv 1\lib\site-packages\matplotlib\artist.py", line 55, in draw_wrapper
    return draw(artist, renderer, *args, **kwargs)
  File "C:\Users\leoro\Documents\env python\venv 1\lib\site-packages\matplotlib\figure.py", line 1493, in draw
    renderer, self, artists, self.suppressComposite)
  File "C:\Users\leoro\Documents\env python\venv 1\lib\site-packages\matplotlib\image.py", line 141, in _draw_list_compositing_images
    a.draw(renderer)
  File "C:\Users\leoro\Documents\env python\venv 1\lib\site-packages\matplotlib\artist.py", line 55, in draw_wrapper
    return draw(artist, renderer, *args, **kwargs)
  File "C:\Users\leoro\Documents\env python\venv 1\lib\site-packages\matplotlib\axes\_base.py", line 2635, in draw
    mimage._draw_list_compositing_images(renderer, self, artists)
  File "C:\Users\leoro\Documents\env python\venv 1\lib\site-packages\matplotlib\image.py", line 141, in _draw_list_compositing_images
    a.draw(renderer)
  File "C:\Users\leoro\Documents\env python\venv 1\lib\site-packages\matplotlib\artist.py", line 55, in draw_wrapper
    return draw(artist, renderer, *args, **kwargs)
  File "C:\Users\leoro\Documents\env python\venv 1\lib\site-packages\matplotlib\text.py", line 706, in draw
    bbox, info, descent = textobj._get_layout(renderer)
  File "C:\Users\leoro\Documents\env python\venv 1\lib\site-packages\matplotlib\text.py", line 305, in _get_layout
    clean_line, ismath = self.is_math_text(line, self.get_usetex())
  File "C:\Users\leoro\Documents\env python\venv 1\lib\site-packages\matplotlib\text.py", line 1190, in is_math_text
    if cbook.is_math_text(s):
  File "C:\Users\leoro\Documents\env python\venv 1\lib\site-packages\matplotlib\cbook\__init__.py", line 2040, in is_math_text
    "matplotlib display text must have all code points < 128 or use "
ValueError: matplotlib display text must have all code points < 128 or use Unicode strings

J'ai installer et désinstaller édupython, essayer d'autre éditeurs comme pycharm ou visualcode...

J'ai aussi rajouté la ligne de code "# coding: utf-8" car l'encodage était mauvais et j'avais l'erreur :

Non-ASCII character

(Je vous met aussi mon programme et d'autres capture d'écran de pip)

Pouvez vous m'aider ?

merci d'avance,

Bonne journée,

# coding: utf-8
from pylab import *



print("")
print("*************************************")
print("* Propagation d'une onde périodique *")
print("*  Mouvements en fonction du temps  *")
print("*************************************")
print("")

###########################
### Données modifiables ###
###########################
A=5	# amplitude en mm (entre 0 et Amax) 
T=50	# période en ms (entre 10 et 100)
v=40   	# célérité en cm/s (entre 10 et 100)
xM=7	# abscisse de M en cm (entre 0 et L)

### Valeurs initiales
#A=5
#T=50
#v=40
#xM=7

### Données non modifiables
L=30		# longueur totale de la cuve en cm
tmax=250	# date de fin en ms
Amax=10		# amplitude maximale en mm

### Test pour les valeurs
probleme=[]
if T<10 or T>100:
	probleme.append("T doit être comprise entre 10 ms et 100 ms")
if v<10 or v>100:
	probleme.append("v doit être comprise entre 10 m/s et 100 m/s")
if xM<=0 or xM>L:
	probleme.append("xM doit être comprise entre 0 m et",L,"cm")
if A<=0 or A>Amax:
	probleme.append("A doit être comprise entre 0 mm et",Amax,"mm")
if len(probleme)!=0:
        for i in range(len(probleme)):
                print(probleme[i])
        sys.exit("Modifiez les paramètres et réessayez")

### Affichage des paramètres 
print("Amplitude de l'onde : A =",round(A,1),"mm")
print("Période de l'onde : T =",round(T,1),"ms")
print("  d'où la fréquence f =",round(1000/T,1),"Hz")
print("Célérité de l'onde : v =",round(v,1),"cm/s")
print("  d'où la longueur d'onde de l'onde : lambda =",round(v*T/1000),"cm")
print("")

### Définition de t (500 points)
t=linspace(0,tmax,500)
### Définition de la fonction périodique
def y(t):
	return 0.56*A*(sin(2*pi*t/T)-sin(4*pi*t/T)) 
### Définition des graphiques
fig=figure()
gcf().subplots_adjust(hspace=0.7)
### Graphique à la source
fig.add_subplot(2,1,1)
plot(t,y(t))                           
title("y(t) à la source")
xlabel("t (en ms)")
ylabel("y (en mm)")
grid(True)
ylim(-Amax,Amax)
xlim(0,tmax)
### Graphique en xM
fig.add_subplot(2,1,2)
plot(t,y(t-1000*xM/v))
title("y(t) à xM = "+str(xM)+" cm de la source")
xlabel("t (en ms)")
ylabel("y (en mm)")
grid(True)
ylim(-Amax,Amax)
xlim(0,tmax)
### Affichage 
show()
  • Partager sur Facebook
  • Partager sur Twitter
23 septembre 2022 à 21:07:13

est ce que tu as la correction

  • Partager sur Facebook
  • Partager sur Twitter
23 septembre 2022 à 21:19:16

@rblx_ram Bonsoir, vous répondez à un sujet dont l'auteur à supprimé son compte, de ce fait il ne recevra aucune notification pour ce sujet.

  Je ferme ici. Vous pouvez créer votre propre sujet en postant le code que vous avez écrit (insérer sur le forum à l'aide du bouton code </>) si vous avez des difficultés.

  • Partager sur Facebook
  • Partager sur Twitter