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

Tkinter Python Discussion :

Ouverture d'un graph matplolib sous tkinder [Python 3.X]


Sujet :

Tkinter Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2019
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Ouverture d'un graph matplolib sous tkinder
    Bonjour, je suis en stage dans une start up ou il n'y a pas d'informaticien. Je suis en ecole d'ingenieur mais mes conaissance en code sont assez limite.
    Je fais un code qui fais des calcules matriciel (ACP). j'ai d'abord fais un code sans interface graphique qui marche et qui fais des jolie graph ( avec titre, point et label pour chaque donne, grille...)
    Maintenant je dois faire une interface graphique ( je n'en n'avais jamais fait). Nom : 67603466_544099842793966_4324036858725007360_n.png
Affichages : 207
Taille : 53,7 Ko
    Dans ce code j ai deux fonction: l'un qui fais les premiers calcule, et un autre qui est fait pour d'autre calcule.
    Dans ces deux programmes je cree des graph matplolib mais que je veux pas afficher ( juste les créer pr les sauvegarder).

    Mon probleme : je n'arrive pas a afficher mon graph du premier programme dans l'interface. Soit rien n'apparait, soit il y a un carre gris a la place.
    ( ca ne peut pas etre un probleme de format j'ai reussi a le faire apparaitre mais quand je le metter ds la deuxieme fonction et quand je laisser mes plt.show(), des que j' enleve c est plt.show ca bug ( pourtant je veux pas de nouvelle fenetre avec ces graph)
    Si quelqu'un aurais une idee ca serais agreable (desole pour le post tres long )
    Voici une partie de mon code :

    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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
    def ACP():
    .
    .
    .
        #graphique variance
        # Create dataframe
        df = pd.DataFrame({
        'x': x,
        'y':VaPtri,
        'group': Variance
        })
        sns.regplot(data=df, x="x", y="y", fit_reg=False, marker="+", color="skyblue")
        # basic plot
        p1=sns.regplot(data=df, x="x", y="y", fit_reg=False, marker="o", color="skyblue")
        # add annotations one by one with a loop
        for line in range(0,df.shape[0]):
            p1.text(df.x[line]+0.1, df.y[line], df.group[line], horizontalalignment='left', size='medium', color='black', weight='semibold')
        plt.grid()
        plt.xlabel('Numero de valeur propre')
        plt.ylabel('Valeur propre')
        plt.title('Variance accumulé')
        plt.savefig(nom+'variance'+'.png')
        NOM.set(nom)
        plt.plot(x,VaPtri)
     
        image = Image.open(nom+'variance'+'.png')
        photo = ImageTk.PhotoImage(image)
        largeur = photo.width()  # dimensions en nombre de pixels
        hauteur = photo.height()
        zone_image = Canvas(Mafenetre, width = largeur, height = hauteur) # crée un canevas de dimensions ajustées à celles de l'image
        zone_image.create_image(0,0, anchor = NW, image = photo) # association image/widget
        zone_image.grid(column=0,row=10) # placement du widget
     
        return
    def graphique():
    .
    . 
    return
    .
    .
    .
     
     
    ##interface
     
    # Creation d'une fenetre principale : Main window
    Mafenetre = Tk()
    Mafenetre.title("ACP")
    Mafenetre.geometry('120000x600')
    Mafenetre.configure(bg = "white")
     
    #bouton lancer Graphique
    Frame12 = Frame(Mafenetre,borderwidth=2,relief=GROOVE,bg='gold')
    Frame12.grid(rowspan=2,column=  2,row=6)
    Label(Frame12,text=" Projections",bg='gold').grid(row=6, column=2)
    Button(Frame12,text="Lancer",fg='navy',command=Graphique,bg='gold').grid(row=7, column=2)
    #bouton lancer ACP
    Frame2 = Frame(Mafenetre,borderwidth=2,relief=GROOVE,bg='deep sky blue')
    Frame2.grid(rowspan=2,column=2,row=2)
    Label(Frame2,text="ACP",bg='deep sky blue').grid(row=2, column=2)
    Button(Frame2,text="Lancer",fg='navy',command=ACP,bg='deep sky blue').grid(row=3, column=2)
    ( j ai essaye d autre maniere d integre matplolib ds tkinder mais le graph est pas beau, y a pas les label, y a plus la grille, y a plus les points... et j ai essaye de le mettre pas moyen avec ce code)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        figure1 = Figure(figsize=(5,4), dpi=100) 
        subplot1 = figure1.add_subplot(111) 
        plt.grid()
        plt.xlabel('Numero de valeur propre')
        plt.ylabel('Valeur propre')
        plt.title('Variance accumulé')
        subplot1.plot(x,VaPtri, color = 'g')   
        bar1 = FigureCanvasTkAgg(figure1,Mafenetre) 
        bar1.get_tk_widget().grid(column=0, row=10)

  2. #2
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2019
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Alors j'ai trouvé grace a un autre forum, je remet la reponse si ca interesse quelqu'un.
    C est juste que les variable photo et image sont dans des fonctions et doivent etre lu par l'interface.
    Il suffit donc de dire que ce sont des variables globale.

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

Discussions similaires

  1. Graphes et sous graphes
    Par vinzzzz dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 06/02/2008, 20h30
  2. Ouverture d'un fichier .mdb sous Access depuis MATLAB
    Par amalirou dans le forum MATLAB
    Réponses: 3
    Dernier message: 16/11/2007, 21h58
  3. Help ouverture d'un Com serie sous Win98!
    Par alen dans le forum MFC
    Réponses: 7
    Dernier message: 18/12/2006, 16h07
  4. empecher l'ouverture de la fenetre DOS sous windows
    Par fairlight dans le forum Windows
    Réponses: 3
    Dernier message: 04/08/2006, 14h13
  5. [Offline]Ouverture d'un doc html sous flash
    Par Hermant dans le forum Flash
    Réponses: 2
    Dernier message: 09/12/2002, 10h14

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