Bonjour : J'ai assemblé le code suivant. Celui-ci permet de visualiser la propagation d'une onde sinusoidale progressive, avec un compteur indiquant la date t et la possibilité de faire un arrêt sur image.
Je précise que je n'ai fais qu'assembler des bouts de code....en conséquence je ne maitrise pas toutes les subtilités

Le problème :
Sur linux ubuntu avec l'éditeur emacs elpy ce script fonctionne à merveille...par contre toujours sur ubuntu, avec pycharm cela ne fonctionne plus, même remarque sur windows 10 avec edupython. Avec edubuntu une fenêtre vide s'affiche et une boucle semble s'activer sans rien que se se passe ....

Je sollicite donc votre aide...Merci d'avance pour votre aide
Jean Rio

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
45
46
47
48
49
50
 
import matplotlib.pyplot as plt
import numpy as np
import matplotlib.animation as animation
 
T = 0.5  
Lambda = 4
k = 2*np.pi/Lambda
w = 2*np.pi/T
dt = 0.004
xminbis = 0
xmaxbis = 16
nbx = 48
xbis = np.linspace(xminbis, xmaxbis, nbx)
pause = False
 
def simData():
    t_max = 15.0
    x = 0.0
    t = 0.0
    while t < t_max:
        if not pause:
            line.set_data([],[])
            t = t + dt
        yield t, line,
 
def onClick(event):
    global pause
    pause ^= True
 
def simPoints(simData):
    t = simData[0]
    y = 0.6*np.cos(k*xbis - w*t)
    line.set_data(xbis, y)
    time_text.set_text(time_template%(t))
    return line, time_text
 
fig = plt.figure()
ax = fig.add_subplot(111)
line, = ax.plot([], [], 'bo', ms=10)
ax.set_ylim(-1, 1)
ax.set_xlim(xminbis,xmaxbis)
plt.xlabel('X (m)', fontsize=16)
plt.ylabel('Y',fontsize=16,rotation = 'horizontal')
 
time_template = 'Time = %.1f s'
time_text = ax.text(0.05, 1.1, '', transform=ax.transAxes)
fig.canvas.mpl_connect('button_press_event', onClick)
ani = animation.FuncAnimation(fig, simPoints,simData, blit=False, interval=20,repeat=True)
fig.show()