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 :

débuter en graphique [Python 3.X]


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2006
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Mai 2006
    Messages : 174
    Par défaut débuter en graphique
    Bonjour,

    j'ai plus de 60 ans.... bon Ok ca pique....

    Je cherche à faire des graphiques tout bêtes en python. Je voudrais
    donc faire un programme qui génère une fenêtre et pouvoir y
    dessiner des lignes et des points en donnant leurs coordonnées.

    Lorsque j'étais jeune, je faisais du BASIC sur AppleII, et c'était
    facile. Ensuite je suis passé au Pascal3 puis 6 et ça commençait à être
    de plus en plus difficile.
    Et maintenant en python comment faire.

    J'ai lu des exemples mais aucun ne fonctionne.
    Par exemple ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #!/usr/bin/python
    # -*- coding: utf-8 -*-
     
    from pylab import *
     
    x = array([1, 3, 4, 6])
    y = array([2, 3, 5, 1])
    plot(x, y)
     
    show() # affiche la figure a l'ecran
    Cela me donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Python 3.4.1 (v3.4.1:c0e311e010fc, May 18 2014, 10:38:22) [MSC v.1600 32 bit (Intel)] on win32
    Type "copyright", "credits" or "license()" for more information.
    >>> ================================ RESTART ================================
    >>> 
    Traceback (most recent call last):
      File "C:\Users\Jean Louis\python\graphique1.py", line 4, in <module>
        from pylab import *
    ImportError: No module named 'pylab'
    >>>

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 696
    Par défaut
    Salut,

    j'ai plus de 60 ans.... bon Ok ca pique....
    Il faut bien commencer un jour.

    Le message d'erreur dit que vous avez oublié d'installer le package (le nom d'un librairie en Python) pylab.
    Je ne sais pas pourquoi vous voulez utilisez Python mais çà vaut peut être le coup d'aller voir des distributions comme Python(x,y) ou EPD ou Anaconda.
    Ce sont des "bundles" qui installent tous les packages dont ont besoin les scientifiques pour faire des calculs et des graphiques.
    Ils ont déjà fait un gros boulot pour s'assurer de la compatibilité entre versions et faire en sorte que le tout s'installe facilement.

    Si vous souhaitez apprendre à programmer en Python, il faudra patienter avant de se lancer dans Pylab et vous exercer avec un tuto comme le Swinnen...

    A vous de voir.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Bienvenu chez Python!

    Citation Envoyé par papilou86 Voir le message
    j'ai plus de 60 ans.... bon Ok ca pique....
    Ça, ce n'est vraiment pas un problème. Moi aussi j'ai fait du basic sur Apple II (entre 78 et 84) et avant, j'ai appris l'informatique dans les années 60 avec des cartes perforées... Comme quoi, on peut être jeune dans sa tête, plus que dans ses artères!

    Python est un chouette langage: facile et puissant, mais il faut tout de même commencer par le début! Pour ça, il y a au moins un livre de référence, celui de Gérard Swinnen qu'on peut trouver ici en pdf: http://python.developpez.com/cours/apprendre-python3/. Ce livre existe aussi dans sa version papier (je l'ai). Il représente une véritable formation et prend aussi en compte la réalisation de programmes graphiques avec la bibliothèque livrée avec Python: tkinter.

    Pylab fait déjà partie de bibliothèques graphiques orientées "scientifique" (numpy, scipy, matplotlib) qu'il faut installer en plus (et c'est facile!).

    Pour des programmes graphiques généraux, il existe d'autres bibliothèques graphiques plus puissantes que tkinter et plus appropriées comme PyQt/PySide ou PyGtk. En ce qui me concerne, mon plus gros programme écrit avec PyQt4 approche les 30.000 lignes de code, et se comporte, vu par un utilisateur normal, comme n'importe quel programme graphique écrit dans n'importe quel autre langage (à noter que j'ai abandonné le Pascal pour Python!).

    Résumé: apprendre Python est un excellent investissement personnel pour faire de beaux programmes, y compris graphiques: il suffit de commencer par le début

  4. #4
    Membre très actif
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2006
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Mai 2006
    Messages : 174
    Par défaut
    Merci à vous deux.
    Je suis bien conscient de tout ce que vous dites.
    Mon objectif est de faire ceci :
    Ouvrir un fenêtre vide de dimension x sur y
    tracer un repère orthonormé (abscisses et ordonnées)
    tracer une droite du type y=ax+b

    ou encore faire un nuage de point sur ce repère.

    ou encore tracer une courbe de type sin ou cos.

    Pour l'instant, juste cela.

    Donc première question :
    est ce que la bibliothèque livrée avec Python: tkinter est suffisante.
    Faut-il installer autre chose.

    seconde question :
    y a t'il, a votre connaissance un exemple quelque part ici ?

    Merci à vous tous

  5. #5
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Dans le livre de Gérard Swinnen dont j'ai donné le lien plus haut: voir un exemple d'oscillographe utilisant tkinter page 199. Ainsi que d'autres exemples.

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 696
    Par défaut
    Salut,

    Comme je le disais plus haut, pour faire ce que vous voulez faire vous avez deux chemins complètement différents.
    Tout dépend de l'approche et de l'impatience que vous avez pour arriver rapidement à vos fins.
    Le Swinnen va vous apprendre les bases de Python, il faut le lire et faire un minimum d'exercices pour être sur de se sentir un peu à l'aise avec les concepts de bases.
    note: le Swinnen est quand même orienté pour les débutants en programmation et est assez délayé. Si vous vous sentez plus à l'aise, la documentation Python vient avec son tutorial intégré. Les concepts sont balayés plus rapidement.
    S'il faut quand même passer un peu de temps dans ces tutoriels de base, réaliser:
    Ouvrir un fenêtre vide de dimension x sur y
    tracer un repère orthonormé (abscisses et ordonnées)
    tracer une droite du type y=ax+b

    ou encore faire un nuage de point sur ce repère.

    ou encore tracer une courbe de type sin ou cos.
    avec les composants de base comme tkinter est très instructif, certes, mais il sera plus rapide d'installer les bibliothèques Python qui font cela en quelques lignes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    from pylab import *
     
    n = 256
    X = np.linspace(-np.pi, np.pi, 256,endpoint=True)
    C,S = np.cos(X), np.sin(X)
    plot(X,C),plot(X,S)
     
    #savefig("../figures/exercice_1.png",dpi=72)
    show()
    Et vous avez d'autres tutoriels sur le site pour apprendre à utiliser ces "outils" assez facilement sans avoir à passer par l'apprentissage des bases du langage, de la POO, de la programmation graphique,...
    note: vous pourrez y jeter un oeil plus tard si le besoin s'en fait sentir.

    Problème: comment installer ces packages?
    C'est ici que les distributions comme Python(x,y),... (que j'ai mentionné plus haut) ont un intérêt: plutôt que d'avoir à comprendre comment installer pylab, matplotlib, numpy, scipy,... vous installez un "gros" machin qui contient tout ce dont vous aurez besoin (et plus encore).
    note: Python(x,y) s'installe sur Windows à partir d'un exécutable qui fait plus de 100Mb! Il y a du monde...

    Après tout dépend de votre approche et de votre savoir-faire: il sera plus motivant d'arriver à faire ce que vous souhaitez rapidement même si on vous avez fait l'impasse sur des tas de trucs et que vous ne comprenez pas tout.
    note: comme vous utilisez Python pour vous faire plaisir et non en tant que programmeur professionnel inutile de comprendre les détails pourquoi du comment...

    A vous de voir.

    - W
    PS: lisez aussi le tutoriel d'introduction de Python pour les scientifiques.
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  7. #7
    Membre très actif
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2006
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Mai 2006
    Messages : 174
    Par défaut
    Merci encore pour votre aide.
    J'ai réalisé mon projet sans rien ajouter, juste en utilisant tkinter.
    Il n'y a rien a ajouter comme librairie

    Voici mon programme :
    Il aidera peut-être quelqu'un un jour.
    Par contre, si l'on veut bien critiquer ce code et expliquer quelques points obscures, ce sera avec plaisir que je recevrai ces critiques

    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
    46
    47
     
    #!/usr/bin/python
    # -*- coding: utf-8 -*-
     
    import tkinter #pour le graphique
    from math import * #pour les fonctions sin,cos,tan, etc
     
    racine=tkinter.Tk()
     
    fond=tkinter.Canvas(racine, width=500, height=500, background='darkgray')#ouvre une fenetre 500 pixels sur 500
    fond.pack()#active la ligne precedente???
     
    ligne=fond.create_line(0,250, 500,250, width=2)#place l'axe horizontal
    ligne=fond.create_line(250,0, 250,500, width=2)#place l'axe vertical
     
    #Attention : il n'y a pas d'instruction de type plot() qui permet de faire un point.
    #On utilise donc le tracé d'une ligne de 1 point.
     
    #fonction y=sin(x)
    for x in range(-250,250) :
        k= (2*pi)/500
        y=(sin(k*x))*100
        point=fond.create_line(250+x,250-y, 251+x,251-y,fill="red", width=2)
     
    #fonction y=cos(x)
    for x in range(-250,250) :
        k= (2*pi)/500
        y=(cos(k*x))*100
        point=fond.create_line(250+x,250-y, 251+x,251-y,fill="green", width=2)
     
    #fonction tan(x)
    for x in range(-250,250) :
        k= (2*pi)/1000
        y=(tan(k*x))*100
        point=fond.create_line(250+x,250-y, 250+x,251-y,fill="purple", width=2)
     
    #fonction y=ax+b   
    for x in range(-250,250) :
        y=x+20
        point=fond.create_line(250+x,250-y, 251+x,251-y, fill="cyan",width=2)
     
    #fonction y=x²    
    for x in range(-250,250) :
        y=x**2/30
        point=fond.create_line(250+x,250-y, 251+x,251-y, fill="yellow",width=2)
     
    racine.mainloop()#je ne sais pas pourquoi mettre ceci, en fait ça marche sans ca

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 19/02/2014, 14h19

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