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

Calcul scientifique Python Discussion :

Récupérer les valeurs d'un clic de souris dans un canvas


Sujet :

Calcul scientifique Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Stagiaire
    Inscrit en
    Février 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Stagiaire

    Informations forums :
    Inscription : Février 2016
    Messages : 11
    Par défaut Récupérer les valeurs d'un clic de souris dans un canvas
    Bonjour,

    Comme le stipule le titre j'ai un problème à récupérer des données dans un canvas. Le but serait en fait de récupérer des coordonnées sur un graphique matplotlib avec un clic de souris. La partie concernant la récupération de données marche mais je n'arrive pas ensuite à intégrer ces valeurs dans une variable, du coup je suis coincé..

    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
    import numpy as np
    import matplotlib.pyplot as plt
    import Tkinter as tk
     
    def onclick(event):
        c_x = event.x
        c_y = event.y
        print(c_x)
        print(c_y)
        return c_x,c_y
     
     
    x1=np.arange(0,50,dtype=np.float)
    x2=np.arange(0,50,dtype=np.float)
    y1=np.arange(0,50,dtype=np.float)
    y2=np.arange(0,50,dtype=np.float)
     
    j=49
    for i in range (0,50):
        x1[i]=i
        x2[i]=j
        y1[i]=2*i+5
        y2[i]=5*j-145
        j=j+1
     
    fig = plt.figure(1)
    fig.canvas.mpl_connect('button_press_event', onclick)
    plt.plot(x1,y1,'b*',x2,y2,'g+')
    plt.show()
    J'ai essayé avec la fonction get() de tkinter, et ça ne marche pas. Mais je crois que ça marche qu'avec les boutons et les entrées.
    Merci de m'avoir lu

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 762
    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 762
    Par défaut
    Salut,

    Citation Envoyé par clempy Voir le message
    Le but serait en fait de récupérer des coordonnées sur un graphique matplotlib avec un clic de souris. La partie concernant la récupération de données marche mais je n'arrive pas ensuite à intégrer ces valeurs dans une variable, du coup je suis coincé..
    Précisez ce que vous entendez par "intégrer ces valeurs dans une variable", à défaut, pas facile de savoir ce que vous voulez exactement.

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

  3. #3
    Membre averti
    Homme Profil pro
    Stagiaire
    Inscrit en
    Février 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Stagiaire

    Informations forums :
    Inscription : Février 2016
    Messages : 11
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,

    Précisez ce que vous entendez par "intégrer ces valeurs dans une variable", à défaut, pas facile de savoir ce que vous voulez exactement.

    - W
    J'utilise peut être pas les bon termes, désolé. En fait j'aimerais pouvoir réutilisé les valeurs des coordonnées qui ont été cliqué par l'utilisateur dans le programme, pour les réutiliser ensuite.
    Par exemple si l'utilisateur clique sur les coordonnées y = 2, et x = 1 avec sa souris. Alors j'aimerais pouvoir enregistrer les valeurs, disons dans un vecteur a. Ce qui me donnera : a = [2,1].
    C'est plus clair ?

    Clem

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 762
    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 762
    Par défaut
    Citation Envoyé par clempy Voir le message
    Par exemple si l'utilisateur clique sur les coordonnées y = 2, et x = 1 avec sa souris. Alors j'aimerais pouvoir enregistrer les valeurs, disons dans un vecteur a. Ce qui me donnera : a = [2,1].
    Un "vecteur" n'est pas un objet Python. Si on imagine que "a" est (variable globale associée à) une liste (vide), a += [x, y] devrait le faire, non?

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

  5. #5
    Membre averti
    Homme Profil pro
    Stagiaire
    Inscrit en
    Février 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Stagiaire

    Informations forums :
    Inscription : Février 2016
    Messages : 11
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Un "vecteur" n'est pas un objet Python. Si on imagine que "a" est (variable globale associée à) une liste (vide), a += [x, y] devrait le faire, non?

    - W
    Merci ! Du coup j'ai essayé et j'ai réussi à récupérer mes données dans un fichier .txt, donc c'est tous bon

    Par contre je m'étais pas rendu compte d'un problème. Je voulais que le code me renvoi les coordonnées du graphique qui s'affiche, et actuellement il me renvoi les coordonnées du Canvas.
    Du coup je sais pas si la méthode que j'ai utilisé est la bonne.

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 762
    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 762
    Par défaut
    Citation Envoyé par clempy Voir le message
    Merci ! Du coup j'ai essayé et j'ai réussi à récupérer mes données dans un fichier .txt, donc c'est tous bon

    Par contre je m'étais pas rendu compte d'un problème. Je voulais que le code me renvoi les coordonnées du graphique qui s'affiche, et actuellement il me renvoi les coordonnées du Canvas.
    Du coup je sais pas si la méthode que j'ai utilisé est la bonne.
    Si vous ouvriez la documentation, vous y trouveriez les attributs xdata, ydata (et des exemples utiles).

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 21/05/2014, 20h21
  2. Réponses: 2
    Dernier message: 28/03/2014, 09h31
  3. Réponses: 1
    Dernier message: 14/01/2014, 10h48
  4. Réponses: 7
    Dernier message: 22/05/2012, 11h52
  5. [Couleur] Récupérer les valeurs R,V,B et L,U,V ?
    Par M4v3rick dans le forum C++Builder
    Réponses: 4
    Dernier message: 25/01/2004, 03h28

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