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

Interfaces Graphiques Discussion :

Intégrer un graphe dans un GUI


Sujet :

Interfaces Graphiques

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 3
    Par défaut Intégrer un graphe dans un GUI
    Bonjour,

    Je débute relativement pour ce qui est des GUI Matlab, et j'aurai aimé avoir une solution au problème suivant :
    J'utilise comme type de représentation pour mon gui le data=guidtat(gcbf) etc...

    J'ai créé dans ma figure des axes :
    axes('units','normalized','position',[0.7 0.7 0.2 0.2],'tag','axes2');
    Et j'ai un pushbutton qui lance une routine :

    uicontrol('style','pushbutton','position',[1000 100 150 50],'string','C''est parti !','callback',@routine);
    Cette routine appelle diverses fonctions dont une qui affiche un graphique. J'aimerai afficher le graphe dans mes axes de figure et non dans une nouvelle fenêtre.
    J'ai tapé :
    data=guidata(gcbf);
    axx = data.axes2;
    for k=1:n
    plot(axx,TNm(k,1),TNm(k,2),'*');
    end
    Mais ca ne m'affiche qu'un point dans mon gui alors que ca en affiche plus dans la fenêtre qui s'ouvre automatiquement. Peut-être est-ce un problème de hold on mais je ne vois pas comment faire.

    Si quelqu'un peut m'aider, ça serait très sympathique !

    Merci

    bahru

  2. #2
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 319
    Par défaut
    Bonjour Bahru,

    Peut-être est-ce un problème avec ta variable 'k' ? Que vaut-elle avant ton appel à la fonction "plot" ?

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 3
    Par défaut
    J'ai édité le problème pour que ce soit plus clair : le plot est au sein d'une boucle, qui fait varier k.
    Je pense que le graphe ne conserve que la fin des points sans tenir compte des plots précédents...

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 319
    Par défaut
    C'est normal alors.

    MatLab est un logiciel basé sur les ensembles de matrices.

    Essaye de donner, dans l'appel de "plot" l'ensemble des points X à tracer avec l'ensemble des points Y correspondants, ça devrait aller beaucoup mieux.

  5. #5
    Membre émérite Avatar de tubaas
    Homme Profil pro
    Acousticien
    Inscrit en
    Août 2009
    Messages
    641
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Acousticien
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2009
    Messages : 641
    Par défaut
    salut
    ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    data=guidata(gcbf);
    axx = data.axes2; 
    for k=1:n
    plot(axx,TNm(k,1),TNm(k,2),'*');
    end
    peut-être écrit comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    data=guidata(gcbf);
    axx = data.axes2
    plot(axx,TNm(1:n,1),TNm(1:n,2),'*');
    sinon
    Peut-être est-ce un problème de hold on mais je ne vois pas comment faire.

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 3
    Par défaut
    Merci à tous deux pour vos réponses.
    En effet, les ":" permettent d'éviter le hold on, cependant dans mon cas, comme il y avait aussi des couleurs variables et que le vecteur couleur ne doit contenir que 3 composantes (et non être une matrice n*3), j'ai utilisé axes(axx);hold on.
    Merci beaucoup !

    Bahru

Discussions similaires

  1. sauvegarder graph dans un gui
    Par onyxi dans le forum MATLAB
    Réponses: 1
    Dernier message: 06/05/2014, 18h21
  2. Intégrer un GIF animé dans un GUI
    Par latitude5 dans le forum Interfaces Graphiques
    Réponses: 1
    Dernier message: 31/07/2009, 11h44
  3. Réponses: 1
    Dernier message: 24/05/2007, 16h12
  4. [VBA-E] Intégrer une variable dans la source d'un graphe
    Par girardeau dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 07/11/2005, 11h12

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