Rafraichir une figure

Signaler
-
mamiemando
Messages postés
29238
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
27 mars 2020
-
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

Messages postés
29238
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
27 mars 2020
6 810
Bonjour,

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

Bonne chance
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...
mamiemando
Messages postés
29238
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
27 mars 2020
6 810
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
.