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 :

Graphique sur 2 axes différents


Sujet :

Interfaces Graphiques

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2012
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 200
    Points : 46
    Points
    46
    Par défaut Graphique sur 2 axes différents
    Bonjour j'essaye de mettre dans mon Gui deux axes avec chacun un graphique; j'ai mis comme code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    handles.axes1
    plot(CVA_ok2(:,1));
     
    handles.axes2
     
    plot(CVA_Ok(:,1));
    Mais à chaque fois uniquement l'axe 1 apparait sur mon interface.
    Pourtant pas d'erreur et la variable est bien définie, une idée ?
    Merci

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Août 2014
    Messages
    1 295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2014
    Messages : 1 295
    Points : 2 385
    Points
    2 385
    Par défaut
    Bonjour,

    As-tu vérifié que la propriété 'Visible' des tes deux axes est bien à l'état 'On' ?
    Si vous cherchez des réponses sur ce forum il faudra avant tout expliquer clairement votre problème et exposer la démarche que vous avez entreprise pour le résoudre. Fournissez une base de travail et de réflexion à vos interlocuteurs!

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2012
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 200
    Points : 46
    Points
    46
    Par défaut
    Je ne connaissais pas cette propriété mais les 2 sont bien sur "On" pour la partie "Visible"


    Si je peux préciser le problème, au break point, il graph bien la 1ère courbe mais dans l'axe 2 au lieu du 1er, et ensuite le second plot écrase le 1er et remplace le graphique.

  4. #4
    Modérateur

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Août 2014
    Messages
    1 295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2014
    Messages : 1 295
    Points : 2 385
    Points
    2 385
    Par défaut
    et comme ça?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    axes handles.axes1
    plot(CVA_ok2(:,1));
    
    axes handles.axes2
    
    plot(CVA_Ok(:,1));
    Si vous cherchez des réponses sur ce forum il faudra avant tout expliquer clairement votre problème et exposer la démarche que vous avez entreprise pour le résoudre. Fournissez une base de travail et de réflexion à vos interlocuteurs!

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2012
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 200
    Points : 46
    Points
    46
    Par défaut
    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
    
    Error using axes
    Value must be a handle
    
    Error in test3>pushbutton1_Callback (line 359)
    axes handles.axes2
    
    Error in gui_mainfcn (line 96)
            feval(varargin{:});
    
    Error in test3 (line 42)
        gui_mainfcn(gui_State, varargin{:});
    
    Error in
    @(hObject,eventdata)test3('pushbutton1_Callback',hObject,eventdata,guidata(hObject))
    
     
    Error while evaluating uicontrol Callback
    J'ai cette erreur


    EDIT :

    Comme ça


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    axes(handles.axes2)
    plot(CVA_ok2(:,1));
     
    axes(handles.axes1)
     
    plot(CVA_Ok(:,1));
    ça fonctionne parfait merci

  6. #6
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 53 166
    Points
    53 166
    Par défaut
    Une autre solution se trouve dans la documentation de la fonction plot :
    plot(axes_handle,...) plots using axes with the handle axes_handle instead of the current axes (gca)
    Pour savoir pourquoi la solution de Gooby ne fonctionnait pas : Qu'est-ce qu'un appel fonctionnel ?

    Regardez les différences et les similitudes de coloration syntaxique entre ces trois lignes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    axes handles.axes1
    
    axes(handles.axes1)
    
    axes('handles.axes1')
    Je vous laisse comprendre…
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  7. #7
    Modérateur

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Août 2014
    Messages
    1 295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2014
    Messages : 1 295
    Points : 2 385
    Points
    2 385
    Par défaut
    Tout simplement, je n'avais jamais lu le paragraphe de la FAQ de l'appel fonctionnel. L'utilisation de la commande a toujours été un peu obscur pour moi, et c'est de la que part ma confusion avec l'utilisation de axes. Tout est plus clair maintenant, merci.
    Si vous cherchez des réponses sur ce forum il faudra avant tout expliquer clairement votre problème et exposer la démarche que vous avez entreprise pour le résoudre. Fournissez une base de travail et de réflexion à vos interlocuteurs!

  8. #8
    Invité
    Invité(e)
    Par défaut
    C'est pas que ça fait 6 jours que j'ai fait cette même remarque, avec les mêmes intervenants, mais...

  9. #9
    Modérateur

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Août 2014
    Messages
    1 295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2014
    Messages : 1 295
    Points : 2 385
    Points
    2 385
    Par défaut
    Ahahah je suis vraiment navré

    Je me disais bien en plus que j'avais déjà eu un problème avec axes! Ne désespère pas WinJerome, tes conseils sont, pour la plupart, assimilés!
    Si vous cherchez des réponses sur ce forum il faudra avant tout expliquer clairement votre problème et exposer la démarche que vous avez entreprise pour le résoudre. Fournissez une base de travail et de réflexion à vos interlocuteurs!

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2012
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 200
    Points : 46
    Points
    46
    Par défaut
    Hello, je me permets de revenir vers vous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    axes(handles.axes1)
     
    plot(CVA_Ok(:,1)); %Plot de la 1ère variable de l'axe 1 
     
    hold on 
     
    plot(VAR_(:,1),'r'); %Plot de la seconde variable de l'axe 1 
     
    axes(handles.axes2)
     
    plot(CVA_Ok2(:,1)); %Plot de la variable de l'axe 2
    Le problème c'est que si je change les variables d'input de mon Gui, le calcul se relance, j'ai les nouveaux graphiques mais pour l'axe 1 il les superpose avec les anciens.

    Une idée ?
    Merci

  11. #11
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 53 166
    Points
    53 166
    Par défaut
    Comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    plot(handles.axes1, CVA_Ok(:,1)); %Plot de la 1ère variable de l'axe 1 
     
    hold(handles.axes1, 'on') 
     
    plot(handles.axes1, VAR_(:,1),'r'); %Plot de la seconde variable de l'axe 1 
     
    hold(handles.axes1, 'off') 
     
    plot(handles.axes2, CVA_Ok2(:,1)); %Plot de la variable de l'axe 2
    ou plus simplement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    plot(handles.axes1, 1:size(CVA_Ok,1), CVA_Ok(:,1), 'b', 1:size(VAR_,1), VAR_(:,1),'r');
     
    plot(handles.axes2, CVA_Ok2(:,1));
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2012
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 200
    Points : 46
    Points
    46
    Par défaut
    Parfait merci !

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2012
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 200
    Points : 46
    Points
    46
    Par défaut
    Hello,

    Je viens encore vous embêter, décidement, les graphique et guide j'ai du mal.

    Alors c'est simple; j'ai un graphique qui fonctionne parfaitement en code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    figure
    plot(dn,C(:,2))
    grid on 
    DateFortmat = 11; 
    datetick('x',dateFormat);

    et j'avais donc mon graphique gui qui fonctionnait :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    plot(handles.axes1, 1:size(C,1), C(:,2))
    et vous l'aurez sans doute compris, je cherche à lui mettre les dates comme le premier, mais je ne sais pas comment faire j'ai essayé un peu tous, et rien ne semble fonctionner.

    Je prend vos idées

    Merci

  14. #14
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 53 166
    Points
    53 166
    Par défaut
    Encore une fois, d'après la documentation :

    datetick(AX,...) uses the specified axes, rather than the current axes.
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2012
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 200
    Points : 46
    Points
    46
    Par défaut
    Il semble pas que j'ai un problème avec la fonction datetick, le premier code fonctionne. C'est juste que je ne sais pas comment l'adapter dans mon gui pour ajouter la date.

  16. #16
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 53 166
    Points
    53 166
    Par défaut
    Comme ceci ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    plot(handles.axes1, 1:size(C,1), C(:,2))
    datetick(handles.axes1, 'x', 11);
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2012
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 200
    Points : 46
    Points
    46
    Par défaut
    Merci, oui un peu comme ça , sauf que là ça ne prend pas ne compte mon vecteur de date au format matlab, c'est lui que je ne sais pas où mettre; j'ai toujours des erreurs si je le place dans le code "gui" comme dans un code "normal"

  18. #18
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 53 166
    Points
    53 166
    Par défaut
    Quel est le problème avec ceci ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    plot(handles.axes1, dn, C(:,2))
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  19. #19
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2012
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 200
    Points : 46
    Points
    46
    Par défaut
    Le problème venait de mon dn ! Merci beaucoup Dut

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

Discussions similaires

  1. [XL-2010] Graphique Excel - Bulles de différentes tailles sur deux axes
    Par star112 dans le forum Excel
    Réponses: 6
    Dernier message: 21/11/2012, 20h45
  2. Graphique avec deux axes différents
    Par loulip123 dans le forum MATLAB
    Réponses: 1
    Dernier message: 19/09/2011, 18h00
  3. Noms du champ sur l'axe du graphique
    Par alainmante dans le forum IHM
    Réponses: 3
    Dernier message: 21/06/2008, 18h17
  4. [CR XI] format numérique sur les axes d'un graphique
    Par kikidrome dans le forum SAP Crystal Reports
    Réponses: 5
    Dernier message: 23/03/2007, 15h20
  5. Mettre des données string sur les axes d'un graphique
    Par Aurore_atmo dans le forum MATLAB
    Réponses: 2
    Dernier message: 06/07/2006, 11h57

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