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

GUI Python Discussion :

graphiques avec python


Sujet :

GUI Python

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut graphiques avec python
    Bonsoir,

    je suis nouveau sous python et j'essai de faire des choses similaires à ce que je faisais avant avec matlab.

    Du coup, j'ai plusieurs questions à propos des figures

    1) la chose que j'essai de faire est un graphique qui serait dans une boucle "for" et qui ajouterait une nouvelle courbe + legend à chaque passage dans la boucle.
    voici ce que j'ai commencé à faire qui me semblait pas mal mais après avoir tourné en rond je n'ai pas trouvé la solution aux multiples messages d'erreur que j'ai eu.
    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
     
    import scipy as sp
    import numpy as np
    import matplotlib as mpl
    import matplotlib.pyplot as plt
    x=np.linspace(-5,5,100)
    listeColor=["r--","b--","g--","m--","r-","b-","g-","m-"]
    coeff=[0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8]
    nbPlot=len(coeff)
    for i in range(1,nbPlot,1) :  
        fig, ax = plt.subplots()
        plt.hold(True)
        ax.plot(x,np.sin(x)*coeff[i-1], listeColor[i-1], label=i)
        plt.xlabel('position X', fontsize=20)
        plt.ylabel('position Y', fontsize= 20)
        plt.title("Fonctions trigonometriques")
        plt.axis([-3, 3, -2, 2])
    legend = ax.legend(loc='upper center')
    for label in legend.get_texts():
        label.set_fontsize('large') #size of legend text
    for label in legend.get_lines():
        label.set_linewidth(1.5)  # the legend line width
    plt.show()
    Pourriez vous s'il vous plait me dire comment modifier ce bout de code pour que ça fonctionne ?
    merci

    2) la deuxieme chose que j'essai de faire est exactement similaire sauf que j'aimerai afficher chaque courbe dans une fenetre différente et que je puisse les visualiser en même temps en cliquant sur la fenetre. Je ne cherche pas à faire un subplot dans une même fenetre mais bien de generer 8 fenetres.

    merci pour l'aide que vous pourrez me donner car là je suis pas mal en galère.

  2. #2
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 823
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 823
    Points : 7 119
    Points
    7 119
    Par défaut
    Bonsoir,

    1) la chose que j'essai de faire est un graphique qui serait dans une boucle "for" et qui ajouterait une nouvelle courbe + legend à chaque passage dans la boucle.
    Je n'ai pas vu vos messages d'erreur !

    Peu importe, dirons-nous, pour afficher plusieurs courbes dans un même axe, il faut faire appel plusieurs fois à la fonction plt.plot(...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    # ...
    for i in range(nbPlot):
        p = plt.plot(...)
        plt.legend([p], "ma légende")
    plt.show()
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut
    merci beaucoup mais par contre j'ai un petit problème avec la légende encore (cf. PJ)
    sais tu d'où cela vient ?
    Pièce jointe 143860

    ce que j'aimerai aussi c'est pouvoir afficher plusieurs figures dans diverses fenetres (et pas dans une seule comme subplot)
    pourrais tu me dire comment faire ?

    en général, lorsque j'essai de faire ceci la deuxieme fenetre ne s'affiche que si j'ai fermé la premiere et ce n'est pas ce que je souhaite.
    J'aimerais avoir 10 fenetres avec mes dix courbes que je peux manipuler individuellement

  4. #4
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 823
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 823
    Points : 7 119
    Points
    7 119
    Par défaut
    Pour la légende, essaie de mettre "ma légende" entre crochets (dans une liste)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    plt.legend([p], ["ma légende"])
    ce que j'aimerai aussi c'est pouvoir afficher plusieurs figures dans diverses fenetres (et pas dans une seule comme subplot)
    pourrais tu me dire comment faire ?
    La réponse est dans la question, en utilisant subplot.

    Voici la section intéressante dans la documentation -> Working with multiple figures and axes
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut
    - merci beaucoup pour ce lien, ça répond exactement à ce que je voulais faire
    - par contre la modification que tu m'as demandé sur la légende fais qu'elle ne s'affiche pas (le petit cadre apparait mais pas le contenu...)

    j'ai fais ceci qui est un peu mieux:

    pLE11 = plt.plot(posX,LE11,'r-o',label="ma legende")

    plt.legend(pLE11)

    par contre ça ne m'écrit pas "ma légende" mais :

    line2D("ma légende")....

    le "line2D" devant le géne un peu

  6. #6
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 823
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 823
    Points : 7 119
    Points
    7 119
    Par défaut
    Normalement dans ce cas, tu ne devrais pas avoir besoin d'arguments pour la méthode legend, étant donné que tu spécifies label précédemment.

    Tout simplement, non?
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut
    Citation Envoyé par fred1599 Voir le message
    Normalement dans ce cas, tu ne devrais pas avoir besoin d'arguments pour la méthode legend, étant donné que tu spécifies label précédemment.vais
    Tout simplement, non?
    je vais regarder, je pense que je vais arriver à me débrouiller à présent. merci beaucoup

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

Discussions similaires

  1. interface graphique avec python ?
    Par fghfgh dans le forum Général Python
    Réponses: 7
    Dernier message: 15/12/2019, 12h28
  2. Interface graphique avec python et tkinter
    Par MrTGR57 dans le forum Tkinter
    Réponses: 0
    Dernier message: 23/04/2014, 17h10
  3. Graphiques type Excel avec Python
    Par panda31 dans le forum Général Python
    Réponses: 2
    Dernier message: 22/09/2009, 13h39
  4. Interphace graphique avec python
    Par baby-sitter dans le forum GUI
    Réponses: 1
    Dernier message: 29/09/2007, 17h13
  5. [debutant]graphique avec python?
    Par sly33 dans le forum GUI
    Réponses: 4
    Dernier message: 13/02/2007, 09h53

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