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 :

Plotyy dans une interface GUI


Sujet :

Interfaces Graphiques

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 177
    Par défaut Plotyy dans une interface GUI
    Bonjour,

    J'avais à l'origine, un simple plot qui fonctionnait, mais finalement, il faut que j'ai 2axes y.
    J'utilise donc plotyy, mais Matlab me dit :
    ??? Undefined function or method 'func2str' for input arguments of type 'double'.
    
    Error in ==> plotyy>fevalfun at 355
                    funcstr = func2str(func);
    
    Error in ==> plotyy at 61
    [h1,ax(1)] = fevalfun(fun1,ax(1),x1,y1,caxspecified);
    
    Error in ==> interface>graphe_vitesse at 1477
      hplot = plotyy(handles.axes_vitesse,d1,vm1,'b',d1,gear,'g');%Courbe
     
    ??? Error while evaluating uicontrol Callback
    J'ai transformé mon code comme ci dessous simplement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    handles = guidata(gcbf);
    hplot = get(hObj,'UserData');
    if isempty(hplot)
     
      hplot = plotyy(handles.axes_graphe2,d1,A,'b',d1,B,'g');%Courbe
      hold(handles.axes_graphe2,'on')
      grid(handles.axes_graphe2,'on')
      set(hObj,'UserData',hplot);
    Merci

  2. #2
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Par défaut
    Bonjour,

    Tu ne peux pas préciser le handle de l'axe dans PLOTYY.
    De plus, je ne suis pas sûr que tu puisses spécifier la couleur des courbes (par défaut elle sont bleue et verte il me semble)

    Ca devrait fonctionner si tu fais comme ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    axes(handles.axes_graphe2);
    hplot = plotyy(d1,A,d1,B);%Courbe
    Duf

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 177
    Par défaut
    Merci, ça fonctionne hormis l'axe y2 qui est disproportionné.
    On peut le dimensionner avec ylim c'est ça ?
    Autre chose, la propriété que j'avais de pouvoir faire apparaitre/disparaitre les courbes en cliquant sur mes pushbuttons ne fonctionne plus (a la place, le graphique devient bleu au lieu de faire disparaitre la courbe (2e clic sur le bouton)).
    Le code complet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    handles = guidata(gcbf);
    hplot = get(hObj,'UserData');
    if isempty(hplot)
     
      axes(handles.axes_graphe2);
      hplot = plotyy(d1,A,d1,B);%Courbe
      hold(handles.axes_graphe2,'on')
      grid(handles.axes_graphe2,'on')
      set(hObj,'UserData',hplot);
    else
      if strcmp(get(hplot,'Visible'),'on'), set(hplot,'Visible','off')
      else set(hplot,'Visible','on')
      end
    end

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Oui tu peux fixer ymin et ymax avec ylim, en sélectionnant l'Axes correspondant selon cette méthode.

    Citation Envoyé par nilsmatlab Voir le message
    Autre chose, la propriété que j'avais de pouvoir faire apparaitre/disparaitre les courbes en cliquant sur mes pushbuttons ne fonctionne plus (a la place, le graphique devient bleu au lieu de faire disparaitre la courbe (2e clic sur le bouton)).
    Sauf que PLOTYY ne fonctionne pas tout à fait de la même façon que PLOT: il crée deux objets Axes l'un sur l'autre (ou un seul si tu spécifies le handle d'un Axes existant) et renvoie:
    Citation Envoyé par doc plotyy
    [AX,H1,H2] = plotyy(...)
    AX contenant les handles des Axes.
    H1 et H2 ceux de tes deux tracés.
    Toujours lire la doc avant d'utiliser une fonction

Discussions similaires

  1. avoir l'option zoom dans une interface graphique sous gui
    Par kwich-bow dans le forum Interfaces Graphiques
    Réponses: 9
    Dernier message: 11/06/2009, 16h46
  2. zoom dans une interface graphique type gui
    Par oregos dans le forum MATLAB
    Réponses: 1
    Dernier message: 25/04/2007, 12h45
  3. Changement de nom dans une interface
    Par memed dans le forum Oracle
    Réponses: 6
    Dernier message: 27/10/2005, 18h20
  4. [vb.net][html] afficher une page html dans une interface vb?
    Par graphicsxp dans le forum Windows Forms
    Réponses: 1
    Dernier message: 29/09/2005, 17h31
  5. Tableau dans une interface idl
    Par Polochon2001 dans le forum CORBA
    Réponses: 2
    Dernier message: 14/05/2004, 09h44

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