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

MATLAB Discussion :

légende et boucle


Sujet :

MATLAB

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

    Informations forums :
    Inscription : Mai 2010
    Messages : 3
    Points : 3
    Points
    3
    Par défaut légende et boucle
    Bonjour,
    je travaille présentement avec matlab et j'ai une petite question que je
    n'arrive pas à régler. J'ai écrit un petit programme qui dessine des graphes
    sur les mêmes axes avec le hold on. Du coup, les graphes s'ajoutent sauf que la
    légende du deuxième écrase la précedente et ainsi de suite.
    par exemple, la légende que j'ai est rouge:'deux' au lieu d'avoir yellow:'un' et
    red:'deux'

    je dessine les graphes au fur et à mesure que j'appuie sur un bouton.

    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
    Y = [1, 5, 3;
        3, 2, 7;
         1, 5, 3;
        2, 6, 1]; % vecteur à représenter
     
     %si le bouton 1 est appuyé, afficher le graphe ci après
     a = area(Y(:,3),'FaceColor','yellow',...
                 'LineWidth',1);
     legend(a,'un');
    hold on
     
    %bouton 2 appuyé, affiche le graphe en rouge sur les mêmes axes et ajoute %sa légende sur la precedente!!!!! sauf que ca écrase l'ancien..
     legend('trois');
     b = area(Y(:,1),'FaceColor','red',...
                 'LineWidth',1);
     legend(b,'deux');
     
     hold on
    Merci

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

    Tu ne dois utiliser qu'un seul legend à la fin lorsque tu as tracé tes graphes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    legend('un' , 'deux' , ...);
    mais si tu veux le faire au fur et à mesure, tu peux faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    leg{i} = 'un';
    leg{i+1} = 'deux';
    ...
    legend(leg);
    Tu incrémentes i à chaque appui de bouton et remplies ainsi leg.
    Dernière modification par Invité ; 23/05/2012 à 16h55.

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

    Informations forums :
    Inscription : Mai 2010
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Bonjour Winjerome,
    merci bcp, ça m'a aidé. au fait j'écrasai à chaque fois la légende..maintenant je stocke dans leg et j'affiche tout à la fin!!
    thx

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Bonjour, je rencontre le même problème et je n'ai pas vraiment compris comment fonctionne leg{i} (je ne suis pas très doué sur matlab).

    Ce que je cherche à faire c'est tracer plusieurs courbes sur un même graphique grâce à la fonction hold on. Le problème étant que lorsque je modifie une donnée de mon code (pour obtenir une nouvelle courbes) et que je run à nouveau. La courbe s'ajoute bel et bien mais la légende précédente se trouve écrasée.

    J'ai donc essayé de mettre une seule légende tout à la fin de mon code (legend('1','2','3','4')) le problème c'est que matlab utilise par défaut la couleur du plot pour les 4 légendes alors que j'ai 4 courbes de différentes couleurs.

    N'est t'il donc pas possible d'imposer une légende à matlab (trait,couleur) indépendante du plot ?

    J'espère que j'ai expliqué clairement mon problème.

    Merci à l'avance.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    Citation Envoyé par kiwiguigou Voir le message
    je n'ai pas vraiment compris comment fonctionne leg{i} (je ne suis pas très doué sur matlab).
    Voir tableaux de cellules

    Citation Envoyé par kiwiguigou Voir le message
    N'est t'il donc pas possible d'imposer une légende à matlab (trait,couleur) indépendante du plot ?
    Une légende est censée décrire un plot, et il est tout à fait normal quelle soit de la même couleur/forme. Je ne vois pas pourquoi tu voudrais les dissocier

Discussions similaires

  1. légende dans une boucle
    Par membreComplexe12 dans le forum MATLAB
    Réponses: 2
    Dernier message: 11/03/2012, 22h53
  2. [Débutant] légende dans une boucle
    Par shakes06 dans le forum MATLAB
    Réponses: 5
    Dernier message: 30/04/2011, 23h59
  3. [legend] Légende dans une boucle
    Par guefrachi dans le forum MATLAB
    Réponses: 1
    Dernier message: 02/02/2011, 17h53
  4. Tracé de courbes et légende dans une boucle for
    Par abzi46 dans le forum MATLAB
    Réponses: 3
    Dernier message: 23/10/2009, 17h29
  5. [legend] Légende dans une boucle
    Par L1011 dans le forum MATLAB
    Réponses: 4
    Dernier message: 12/05/2008, 14h48

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