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

Python Discussion :

Taille d'une figure avec matplotlib


Sujet :

Python

  1. #1
    Membre confirm�
    Homme Profil pro
    Enseignant
    Inscrit en
    Octobre 2015
    Messages
    56
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2015
    Messages : 56
    Par d�faut Taille d'une figure avec matplotlib
    Bonjour � tous,
    j'utilise matplotlib pour dessiner la marche al�atoire d'un robot, un exercice niveau terminale dans un chapitre Probabilit�s.
    J'ai �crit le programme ci-dessous qui fonctionne correctement quand je r�alise la marche avec 100 d�placements, avec un nombre de d�placements �gal � 24*60*60 (1 saut par seconde pedant une journ�e), le programme bloque par une limite de capacit� que je ne sais pas traiter.
    Voici le programme que j'ai �crit avec Thonny :
    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
    from random import randint
     
    def deplacement(n):
        abscisse=[0];ordonnée=[0]
        t=randint(1,4)
        x=abscisse[0];y=ordonnée[0]
        for i in range(n):
            t=randint(1,4)
            if t==1:
                x=x+1
            elif t==2:
                y=y+1
            elif t==3:
                x=x-1
            else:
                y=y-1
            abscisse.append(x)
            ordonnée.append(y)       
        return abscisse, ordonnée
     
    n=24*60*60
    X,Y=deplacement(n)
    #print(X,Y)
    import matplotlib.pyplot as plt
    plt.figure(figsize=(100,100))
    plt.axis('on')
    plt.plot([0],[0],marker='o',color='red')
    for i in range(n):
    #    print(i,X[i],Y[i],X[i+1],Y[i+1])
        plt.plot(X,Y,marker=' ',color='blue')
    plt.plot([X[n]],[Y[n]],marker='o',color='green')
    plt.title('Marche aléatoire')
    plt.grid()
    plt.show()
    J'ai regard� les param�tres de figure sans bien comprendre comment faire pour afficher la figure, par plusieurs essais j'ai obtenu des maximums pour X ou X de l'ordre de 1.000, cette valeur ne va pas dans figure.
    Ma question un peu na�ve ; Quelle est l'astuce pour sortir la figure avec autant de d�placements?
    En remerciant d'avance pour l'aide apport�e, bonne journ�e � tous.

    Voici la console Python apr�s ex�cution du programme :
    >>> %Run TP-002-p286-Une-seconde-marche-aleatoire.py
    ERROR thonny.backend: PROBLEM WITH THONNY'S BACK-END
    Traceback (most recent call last):
    File "C:\Users\pzorba75\AppData\Local\Programs\Thonny\lib\site-packages\thonny\plugins\cpython\cpython_backend.py", line 1238, in wrapper
    result = method(self, *args, **kwargs)
    File "C:\Users\pzorba75\AppData\Local\Programs\Thonny\lib\site-packages\thonny\plugins\cpython\cpython_backend.py", line 1225, in wrapper
    return method(self, *args, **kwargs)
    File "C:\Users\pzorba75\AppData\Local\Programs\Thonny\lib\site-packages\thonny\plugins\cpython\cpython_backend.py", line 1295, in _execute_prepared_user_code
    exec(statements, global_vars)
    File "C:\Users\pzorba75\Documents\M-Math�matiques\1-Sp�\Barbazo\Chap-09-Probabilit�s-conditionnelles\TP-002-p286-Une-seconde-marche-aleatoire.py", line 30, in <module>
    plt.plot(X,Y,marker=' ',color='blue')
    File "C:\Users\pzorba75\AppData\Roaming\Python\Python37\site-packages\matplotlib\pyplot.py", line 2769, in plot
    **({"data": data} if data is not None else {}), **kwargs)
    File "C:\Users\pzorba75\AppData\Roaming\Python\Python37\site-packages\matplotlib\axes\_axes.py", line 1637, in plot
    self.add_line(line)
    File "C:\Users\pzorba75\AppData\Roaming\Python\Python37\site-packages\matplotlib\axes\_base.py", line 2288, in add_line
    self._update_line_limits(line)
    File "C:\Users\pzorba75\AppData\Roaming\Python\Python37\site-packages\matplotlib\axes\_base.py", line 2311, in _update_line_limits
    path = line.get_path()
    File "C:\Users\pzorba75\AppData\Roaming\Python\Python37\site-packages\matplotlib\lines.py", line 999, in get_path
    self.recache()
    File "C:\Users\pzorba75\AppData\Roaming\Python\Python37\site-packages\matplotlib\lines.py", line 661, in recache
    self._xy = np.column_stack(np.broadcast_arrays(x, y)).astype(float)
    File "<__array_function__ internals>", line 6, in column_stack
    File "C:\Users\pzorba75\AppData\Roaming\Python\Python37\site-packages\numpy\lib\shape_base.py", line 656, in column_stack
    return _nx.concatenate(arrays, 1)
    File "<__array_function__ internals>", line 6, in concatenate
    numpy.core._exceptions._ArrayMemoryError: Unable to allocate 1.32 MiB for an array with shape (86401, 2) and data type float64

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
    File "C:\Users\pzorba75\AppData\Local\Programs\Thonny\lib\site-packages\thonny\plugins\cpython\cpython_backend.py", line 1283, in execute_source
    return self._execute_prepared_user_code(statements, global_vars)
    File "C:\Users\pzorba75\AppData\Local\Programs\Thonny\lib\site-packages\thonny\plugins\cpython\cpython_backend.py", line 1243, in wrapper
    return {"user_exception": self._backend._prepare_user_exception()}
    File "C:\Users\pzorba75\AppData\Local\Programs\Thonny\lib\site-packages\thonny\plugins\cpython\cpython_backend.py", line 1076, in _prepare_user_exception
    "stack": self._export_stack(last_frame),
    File "C:\Users\pzorba75\AppData\Local\Programs\Thonny\lib\site-packages\thonny\plugins\cpython\cpython_backend.py", line 968, in _export_stack
    module_name = system_frame.f_globals["__name__"]
    KeyError: '__name__'
    >>>

  2. #2
    Membre �m�rite

    Homme Profil pro
    Ing�nieur
    Inscrit en
    Ao�t 2010
    Messages
    662
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : Ing�nieur
    Secteur : A�ronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Ao�t 2010
    Messages : 662
    Par d�faut
    Bonjour,

    Le probl�me vient de la boucle ci-dessous. Pour chaque point elle trace tous les x et y. La fonction plot de matplotlib accepte une liste de valeurs. Ci-dessous je demande de tracer tous les points sauf le premier et le dernier.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    plt.plot(X[1:-1], Y[1:-1], marker=' ', color='blue')
    # for i in range(n):
    #     plt.plot(X,Y,marker=' ',color='blue')
    Julien

  3. #3
    Membre confirm�
    Homme Profil pro
    Enseignant
    Inscrit en
    Octobre 2015
    Messages
    56
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2015
    Messages : 56
    Par d�faut
    Je ne pouvais pas trouver tout seul, le programme fonctionnant correctement avec n=100.

    Merci de cette r�ponse rapide et pertinente.

    � une prochaine occasion.

Discussions similaires

  1. R�ponses: 0
    Dernier message: 27/04/2017, 09h30
  2. gerer taille d'une figure avec 3 subplot
    Par Krokro00 dans le forum MATLAB
    R�ponses: 2
    Dernier message: 13/06/2008, 14h55
  3. [Struts] Tester la taille d'une List avec un Tag Logic
    Par yolepro dans le forum Struts 1
    R�ponses: 5
    Dernier message: 24/08/2007, 10h28
  4. Dessiner une figure avec graphics.h
    Par Firas_tn dans le forum C
    R�ponses: 2
    Dernier message: 29/03/2006, 20h33
  5. Recuperation de la taille d'une image avec la propri�t� SRC
    Par CDRIK dans le forum G�n�ral JavaScript
    R�ponses: 6
    Dernier message: 08/10/2004, 03h05

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