Rafraichir une figure

Bonjour,

Je cherche à écrire un programme sous
spyder
qui simule l'acquisition sur un capteur de l'amplitude et la phase d'un signal, pendant un certain temps puis affiche le résultat sous la forme des courbes R1(t) pour l'amplitude et R2(t) pour la phase. Je répète ce processus 3 fois. Je n'arrive pas à rafraîchir la figure.
  • Si je lance le programme depuis la console
    ipython
    (F5), les 3 figures s'affichent les unes sous les autres.
  • Si je lance le programme depuis le profileur (F10), j'ai bien ce que je veux, mais pour passer d'une figure à la suivante, je dois fermer manuellement la fenêtre (croix en haut à droite).


Je voudrais pouvoir afficher la nouvelle fenêtre en appuyant sur la touche "entrée". Quelqu'un sait-il comment faire?

from random import uniform
import matplotlib.pyplot as plt

####On génère la liste des abscisses####
nbpts = 10
dt = 0.25
nscan = 3
t = []
for i in range (0,nbpts):
    t.append(float(i) * dt)
########################################
       
####On génère deux listes de nombres aléatoires
####la première entre 0 et 1; la seconde entre 40 et 50####    
for k in range(0, nscan):
    Res = [[]]
    
    for i in range (0, nbpts):
        if i == 0:
            Res = [[uniform(0., 1.),uniform(40.0, 50.0)]]
        else:
            Res.append([uniform(0.,1.),uniform(40.0, 50.0)])
    R1 = []
    R2 = []
       
    for i in range (0, nbpts):      
        R1.append(Res[i][0])
        R2.append(Res[i][1])
 ##########################################################

####Affichage des figures####       
    fig = plt.figure(figsize = (10,5))
    plt.figure(1)
    plt.subplot(121, facecolor='aliceblue')
    
    if k == 0:
        couleur = 'r'
    elif k == 1:
        couleur = 'b'
    elif k == 2:
        couleur = 'g'
        
    plt.plot(t, R1, couleur)
    plt.subplot(122, facecolor='aliceblue')             
    plt.plot(t, R2, couleur)
    plt.show()
    plt.close()
    continue
    a = input("appuyer")
#############################


Je vous remercie par avance pour votre aide

2 réponses

  1. Modérateur
    Bonjour,

    Il ne suffit pas de permuter tes
    instructions
    continue et
    input("appuyer")
    ?

    Bonne chance
    0
    1. Bonjour mamiemando,
      non, si je termine par une instruction "continue" je sors de la boucle et seule s'affiche la première occurrence de la boucle for.
      Merci tout de même.
      Si tu as une autre idée...
      0
      1. Modérateur
        En tout cas, une instruction derrière
        continue
        fait qu'elle ne sera jamais exécutée. De plus,
        continue
        ne te fait pas sortir de la boucle (contrairement à
        break
        ), il passe à l'itération suivante dans ta boucle
        for
        .
        0