IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques tierces Python Discussion :

Matplot FuncAnimation dessin non continu [Python 3.X]


Sujet :

Bibliothèques tierces Python

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2012
    Messages : 112
    Points : 98
    Points
    98
    Par défaut Matplot FuncAnimation dessin non continu
    Bonjour à tous et à toutes,
    Le pb
    il s'agit d'afficher progressivement en rouge 400 points sur 20 colonnes de 20 lignes. Malheureusement chaque colonne remplie s'efface quand l'autre commence, alors que je voudrais, qu'à la fin, le tableau n'ait que des points rouges.
    Au départ je pensais que c'était parce que la Func Animation appelait la fonction animate(i) sur des intervalles de 1 à 20 puis recommençait et que la mise à jour du paramètre i 20X( 1à 20) entrainait la réinitialisation de l'image 20 fois.
    J'ai donc appelé la fonction animate(i) par la fonction FuncAnimation sur un intervalle de 1 à 400 mais le résultat est le même. (ce qui m'a obligé pour les coordonnées des points à utiliser des modulo(20))
    Une suggestion serait bienvenue
    En vous remerciant de m'avoir consacré de votre temps.
    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
    from numpy import *
    import matplotlib.pyplot as plt
    from matplotlib.animation import FuncAnimation
     
    def animate(i):
        global z
        balle.set_data(x[z],y[:i%20+1]) # permet à y de ne prendre que les valeurs de 1 à 20
                                        #  puisque i va de 1 à 400
     
        if i%20==19: #permet à x de changer de colonne
            z=z+1
        return balle,
     
    z=0
     
    x=linspace(1,20,20,dtype=int)
    y=linspace(1,20,20,dtype=int)
    a,b= meshgrid(x, y)
    fig, ax = plt.subplots()
    xmax = 21
    xmin = 0
    ymax = 21
    ymin = 0
    ax.set_xlim(xmin, xmax)
    ax.set_ylim(ymin, ymax)
    ax.set_aspect('equal')
    scat=plt.scatter([a],[b],marker='.',c='white',edgecolors='black',s=300)
    balle,=ax.plot([],[],'ro',ms=7)
     
    sc =FuncAnimation(fig, animate, frames=linspace(0,399,400,dtype=int),
                               interval=10, blit=True, repeat=False)
    plt.show()

  2. #2
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2012
    Messages : 112
    Points : 98
    Points
    98
    Par défaut
    En fait je crois avoir saisi le pb.
    A chaque appel la fonction doit reconstruire l'image( n-1) ET l'image (n) . ce que ne fait pas le code actuel qui ne construit que l'image n

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2012
    Messages : 112
    Points : 98
    Points
    98
    Par défaut
    Bon.
    Je mets le programme au cas ou cela pourrait aider un débutant comme moi en FuncAnimation
    Il n'ya rien de difficile mais la fonction est un peu déroutante au départ
    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
     
    """le but est de remplir une grille de 20 sur 20 par des points rouges
    Inspiré de
     https://www.youtube.com/watch?v=rbFws9XGu0s&list=PLDtut0doG41ZH8owcjxvSYgNq2vkw92tH&index=11
    video à 8 mn 30"""
     
    from numpy import *
    import matplotlib.pyplot as plt
    from matplotlib.animation import FuncAnimation
     
     
    z=0
     
    def animate(i):
        global z
        balle.set_data(x[:z], y[:z])
        z+=1
     
     
        return balle,
     
    ############################
    x=[]
    y=[]
    for s in range(1, 21):
        for t in range(1, 21):
            x.append(s)
            y.append(t)
    a=linspace(1,20,20,dtype=int)
    b=linspace(1,20,20,dtype=int)
    a,b= meshgrid(a, b)
    fig, ax = plt.subplots()
    xmax = 21
    xmin = 0
    ymax = 21
    ymin = 0
    ax.set_xlim(xmin, xmax)
    ax.set_ylim(ymin, ymax)
    ax.set_aspect('equal')
    scat=plt.scatter([a],[b],marker='.',c='white',edgecolors='black',s=300)
    balle,=ax.plot([],[],'ro',ms=7)
     
    sc =FuncAnimation(fig, animate, frames=linspace(0,399,400,dtype=int),interval=10, blit=True, repeat=False)
     
    plt.show()

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Texture hachée non continue
    Par le mage tophinus dans le forum Interfaces Graphiques en Java
    Réponses: 0
    Dernier message: 18/11/2008, 12h36
  2. Réponses: 7
    Dernier message: 11/06/2008, 10h09
  3. [C][Allegro] Dessiner en continue.
    Par NioX5199 dans le forum Bibliothèques
    Réponses: 0
    Dernier message: 14/02/2008, 22h09
  4. "Flux" HTML non continu
    Par wishmastah dans le forum Langage
    Réponses: 7
    Dernier message: 29/05/2006, 11h40
  5. [PaintBox] Persistance du dessin non créé dans onPaint
    Par princesse dans le forum C++Builder
    Réponses: 10
    Dernier message: 21/04/2004, 17h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo