Bonjour à toutes et tous.
Je suis débutant en python et essaye de réaliser, dans le cadre d'un projet de L2, un programme de simulation de type "modèle d'Ising".
J'avance à taton, mais sans trop de difficultés depuis le début. (Beaucoup de bidouillage vu mon niveau, mais l'ensemble fonctionne plutôt bien)
Cependant depuis hier je bloque sur la façon dont je peux animer les changements d'état de mon système.
J'ai donc un programme qui me génère une liste contenant les différentes "photos" de ma matrice après chaque changement d'état.
Jusqu'ici tout fonctionne.
Ma liste que j'ai nommé "ListeImages" contient bien un nombre N de matrices carrées qui sont les "photos" du système aux différentes étapes.
Là où ça coince, c'est lorsque j'essaye d'animer tout cela avec FuncAnimation de la bibliothèque matplotlib.animation.
Dans le morceau de code ci-dessous la fonction genData() me pose problème
En remplaçant "ListeImages" par une génération aléatoire de matrice comme par exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 def genData(): return ListeImages[0] def updateData(frameNumber): mat.set_data(genData()) return fig, ax = plt.subplots() mat = ax.matshow(genData()) ani = animation.FuncAnimation(fig, updateData, interval=100) ani.save('systeme.mp4')
Cela fonctionne parfaitement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 def genData(): return [np.random.rand(4) for _ in range(4)]
En fait, pour etre précis, je ne sais pas comment faire "cracher" à ma fonction genData les différentes images de ma matrice dans l'ordre...
Comme par exemple je pourrais le faire avec une simple boucle de type
et en interrogeant b
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 N = len(ListeImages) for a in range(N) b = ListeImages[N]
... j'ignore si je suis clair, mais j'essaie...
Merci d'avance pour votre aide !
Partager