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 :

[hist] afficher dans une autre couleur le rectangle le plus grand


Sujet :

MATLAB

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 401
    Points : 102
    Points
    102
    Par défaut [hist] afficher dans une autre couleur le rectangle le plus grand
    Bonjour,

    Je souhaite représenter des histogrammes qui sont donc caractérisés par des rectangles. Je souhaiterais afficher le rectangle qui est le plus élevé dans une autre couleur. J'ai essayé quelque chose comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    hist1=hist(valeurs_Imp1);
    figure
    hist(valeurs_Imp1)
    hold on
    plot(max(hist1),'r')
    title('histrogramme simple de Imp1')
    legend('histogramme','maximum','Location','SouthEast')
    J'ai certes l'histogramme et max(hist1) mais cette dernière valeur se résume à un point qui est situé au maximum de l'histogramme. Mais ce n'est pas ce que je veux : je souhaite mettre en évidence le rectangle de hauteur max(hist1) en rouge.

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

    Tu peux t'inspirer de cette page de la documentation.

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 401
    Points : 102
    Points
    102
    Par défaut
    Merci Winjerome. Cette page m'explique comment colorier mais mon problème est comment colorier seulement le rectangle le plus grand ?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Tu obtiens l'indice du rectangle le plus grand (cf FAQ), et ne colores que celui là au lieu de boucler sur tous.

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 401
    Points : 102
    Points
    102
    Par défaut
    Winjerome oui je sais déjà comment trouver cet indice. Par exemple, soit l'histogramme suivant hist1:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    hist1=hist(valeurs_Imp1);
    Ce qui vaut :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    28	3220	80497	176	60	382	45	17	19	87
    Je peux trouver l'indice du rectangle de hauteur maximale :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find(hist1==max(hist1))
    Ceci donne 3 ici et qui est donc correct. Mais après j'avoue que je suis un peu perdu dans le lien que tu m'as donné. hist1(3) n'est ici qu'un nombre donc je ne peux pas en faire un plot ni rien colorer. Il faudrait en fait travailler sur hist(valeurs_Imp1) directement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    figure
    hist(valeurs_Imp1)
    hold on
    %Récupérer le rectangle le plus grand et le colorer.
    J'avoue que je ne sais pas trop.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Perdu sur quoi précisément ?
    As-tu au moins étudié la façon dont ils faisaient pour colorer les barres ?
    Quel point tu ne comprends pas ?

  7. #7
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 401
    Points : 102
    Points
    102
    Par défaut
    Et bien je ne saisis pas comment colorer seulement le troisième rectangle dans cet exemple et comment récupérer ce dernier rectangle.

  8. #8
    Invité
    Invité(e)
    Par défaut
    On te fourni ce code :
    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
    n = 13;
    Z = rand(n,1);
    h = bar(Z);
    colormap(summer(n));
     
    ch = get(h,'Children');
    fvd = get(ch,'Faces');
    fvcd = get(ch,'FaceVertexCData');
     
    [zs, izs] = sortrows(Z,1);
     
    for i = 1:n
        row = izs(i);
        fvcd(fvd(row,:)) = i;
    end
    set(ch,'FaceVertexCData',fvcd)
    qui comme son nom l'indique, va colorer les rectangles selon leur hauteur.
    Il te suffit d'appliquer ce que je t'ai dit :
    Citation Envoyé par Winjerome Voir le message
    Tu obtiens l'indice du rectangle le plus grand (cf FAQ), et ne colores que celui là au lieu de boucler sur tous.

Discussions similaires

  1. Réponses: 4
    Dernier message: 10/05/2008, 02h12
  2. Réponses: 9
    Dernier message: 30/03/2008, 20h30
  3. afficher dans une autre frame
    Par lrgtk dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 18/02/2008, 09h38
  4. Choix multiple à afficher dans une autre fenêtre
    Par makohsarah dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 11/07/2007, 11h37
  5. Réponses: 2
    Dernier message: 31/05/2007, 11h01

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