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 :

legend pour chaque couleur [Débutant]


Sujet :

MATLAB

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut legend pour chaque couleur
    salut tous,

    j'ai suivie la FAQ et je susi arrivé à faire des courbes de couleurs différentes pas de soucis mais par contre je ne sais pas comment ajouter une légende pour chacunes de ces courbes.

    voici ce que j'ai fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    pCourbes = length(T);
        couleurs = hsv(pCourbes);
        for p=1:1:length(T)
            figure (compteurFigure)
            hold on
            plot(X{TIndex(p)}(:),Y{TIndex(p)}(:),'color',couleurs(p,:))
            h(p)=legend(names{p});
            hold on
            legend(h,num2str([1:pCourbes].'));
        end
    en fait je voudrais faire apparaitre dans la légende des noms que j'ai stocké dans la cellule name{p}.

    le code que j'ai mis plus haut plante carrement mais celui ci non :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    pCourbes = length(T);
        couleurs = hsv(pCourbes);
        for p=1:1:length(T)
            figure (compteurFigure)
            hold on
            h(p)=plot(X{TIndex(p)}(:),Y{TIndex(p)}(:),'color',couleurs(p,:))
            hold on
            legend(h,num2str([1:pCourbes].'));
        end
    le probleme est que je n'ai que des numéro, or je veux faire apparaitre les noms également

    j'ai bien essayé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    legend([h ' ' names{p}],num2str([1:pCourbes].'));
    mais un seul nom apparait dans la légende et pas les autres ....

    merci d'avance pour l'aide que vous pourrez m'apporter

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

    La ligne legend(...) doit être mise après la boucle.

    Que souhaites tu afficher exactement dans la légende ?
    Il y a une ligne avec des numéros, et une autre avec names
    Si j'ai bien compris, tu veux concaténer les deux? doc strcat.

    Remarque : Un seul hold on suffit : avant ta boucle.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut
    merci Jerome de ton aide

    en fait ce que je veux c'est que pour chaque nouvelle courbe "p" j'affiche une nouvelle couleur (ça c'est OK) et que je rajoute dans la légende un ligne pour cette nouvelle courbe.

    Citation Envoyé par Winjerome Voir le message
    La ligne legend(...) doit être mise après la boucle.
    le probleme avec ceci c'est que la légende m'affichera que le dernier "string" contenu dans names{p}

    ==> pour etre plus clair :

    en fait j'aimerai à la premiere iteration avoir ceci dans :
    à la deuxieme iteration avoir ceci dans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    legend('names{1}', 'names{2}')
    à la troisieme iteration avoir ceci dans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    legend('names{1}', 'names{2}', 'names{3}')
    etc...

    ps: à la limtie je m'en fou du numéro de courbe "h" ce qui est important c'est juste le nom

  4. #4
    Invité
    Invité(e)
    Par défaut
    Donc exit le numéro. Je maintiens ce que j'ai dit :
    Citation Envoyé par Winjerome Voir le message
    La ligne legend(...) doit être mise après la boucle.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    figure (compteurFigure)
    hold on
    for p=1:1:length(T)
        h(p) = plot(X{TIndex(p)}(:),Y{TIndex(p)}(:),'color',couleurs(p,:))
    end
    legend(h,names)
    [EDIT] Une autre solution
    Dernière modification par Invité ; 27/03/2012 à 03h16. Motif: Ajout

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut
    merci jerome, la solution que tu m'as donné fonctionne très bien !!!!!!!!

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 22/08/2014, 15h25
  2. [Débutant] une Legend Pour chaque couleur de courbe
    Par dzdesperado dans le forum MATLAB
    Réponses: 2
    Dernier message: 03/02/2013, 17h16
  3. Couleur spécifique pour chaque caractère d'un QString
    Par stanfillirenfro dans le forum Débuter
    Réponses: 13
    Dernier message: 11/06/2012, 16h45
  4. Couleur pour chaque cellule d'une colonne
    Par lo_schil dans le forum Composants
    Réponses: 3
    Dernier message: 03/06/2010, 11h48
  5. Réponses: 7
    Dernier message: 21/02/2009, 22h22

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