Rafraichir une figure

Fermé
Beranto - Modifié le 24 mars 2020 à 10:38
mamiemando Messages postés 33401 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 28 novembre 2024 - 25 mars 2020 à 22:31
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

mamiemando Messages postés 33401 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 28 novembre 2024 7 804
24 mars 2020 à 10:39
Bonjour,

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

Bonne chance
0
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
mamiemando Messages postés 33401 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 28 novembre 2024 7 804
25 mars 2020 à 22:31
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