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 :

Changer la couleur des barres dans un histogramme


Sujet :

MATLAB

  1. #1
    Débutant
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 193
    Points : 58
    Points
    58
    Par défaut Changer la couleur des barres dans un histogramme
    Bonjour

    j'ai réalisé un histogramme où trois barres se superposent, j'aimerais que la premiere barre soit en gris puis la seconde en orange et la troisième en rouge

    je vous mets ci joint l'image obtenue sans le changement de couleur pour que celà soit plus clair

    voilà le code de l'affichage
    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
    20
    21
    22
    23
    AOTJ=[AOTm AOTSJF AOTSJI];
     
    figure(CINZANA)  
    subplot (2,2,pM)
    b=bar(AOTJ,1.5);
    title('a) Année 2006','fontsize',14,'fontweight','b','color','b')
    set(gca,'Ytick',1:7,'Ylim',[0 8],'xticklabel',4:15,'xlim',[0 12.5],'fontweight','b','fontsize',9)
    h1=gca;
    h2 = axes('Position',get(h1,'Position'));
    p=plot(cas06(4:15,2),'color','r','LineWidth',2,'Marker','o','MarkerEdgeColor','k','MarkerFaceColor','r','MarkerSize',6);
    set(h2,'YAxisLocation','right','Color','none','XTickLabel',[],'Ylim',[0 140],'Ytick',0:20:140,'Ycolor','r','fontweight','b')
    ylabel('Nombre de cas de méningite','fontweight','b','color','r','Fontsize',11);
    set(h2,'XLim',get(h1,'XLim'),'Layer','top','fontweight','b')
    h=legend([b(:);p(:)],{'Nombre de jours mesurés','Evènements','Ev.intenses','Méningite'});
    set(h,'Interpreter','none')
    xlabel('Semaines','fontweight','b','color','k','Fontsize',12);
    %%position de la légende des abscisses
    h = get(gca,'xlabel');
    pos = get(h,'position');
    pos(2) =-11; % Valeur à ajuster pour avoir le bon placement, (2) déplacement de haut en bas,(1)de droite à gauche
    set(h,'position',pos)
    pM=pM+1;
    end

    pour résumer AOTm en gris, AOTJF en orange et AOTJI en rouge

    merci par avance pour l'aide
    Images attachées Images attachées  

  2. #2
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    Salut niepoc,

    Quand je ne sais pas faire un truc avec les objets graphiques je fouille.
    La 1ère chose étant de récupérer le/les handle/s de tes objets.
    C'est ce que tu fais ici :Cela retour un vecteur 1*3 puisqu'il y a 3 bar.
    Pour regarder quelles sont les propriétés de ces objets on s'intéresse à un en particulier :Et là comme on cherche à modifier la couleur on cherche le mot clé Color
    => on trouve FaceColor et EdgeColor. Edge étant pour le contour et Face pour la "face" (je ne trouve pas mieux).
    On teste tout simplement en mettant en rouge par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set(b(1),'FaceColor',[1 0 0])
    Tu dois pouvoir trouver le reste tout seul
    Règles du Forum

    Adepte de la maïeutique

  3. #3
    Débutant
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 193
    Points : 58
    Points
    58
    Par défaut
    merci pour les renseignements

    comment dois je faire pour ajouter un axe, en ordonnée, à droite, concernant la première barre?

    merci d'avance

  4. #4
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    Tu peux essayer d'expliquer un peu plus ?
    Pour tout t'avouer, je n'ai rien compris du tout de ce que tu veux
    Règles du Forum

    Adepte de la maïeutique

  5. #5
    Débutant
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 193
    Points : 58
    Points
    58
    Par défaut
    j'ai réussi pour les couleurs merci pour l'aide

    en fait j'obtiens trois barres pour mon histogramme et un tracé

    ma premiere barre sont des nombres allant de 1 à 7 et les deux autres sont des pouurcentages allant de 0 à 100

    j'aimerai distinguer les données (nombres et pourcentage), pour cela je pense qu'il faut faire deux axes en ordonnées, donc j'aimerai ajouter un axe des ordonnées allant de 1 à 7 et si possible a droite en superposition de mon axe du tracé

    merci d'avance

  6. #6
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    Dans ton cas j'ai l'impression que tu es obligé de tracer tes 3 bars ensemble.
    Il faut donc ensuite que tu crées ton nouvel axe (avec ordonnée à droite) puis que tu déplaces dedans ta première barre.
    "Déplacer" dans ce cas veut dire que tu changes la propriété 'Parent' de l'objet bar.

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    h=bar(AO,1.5);
    a=axes('YAxisLocation','right','Color','none');
    set(h(1),'Parent',a)
    Par contre cela change l'ordonnancement de tes barres.
    Il faut peut-être le faire dans l'autre sens (ie créer les bar dans les axes avec ordonnées à droite, puis déplacer les 2 dans un nouvel axes avec ordonnées à gauche).
    De plus je ne sais pas comment ça va interagir avec tes ordonnées que tu as déjà à droite, tu as intérêt à mettre de la couleur : propriété 'YColor'.
    Règles du Forum

    Adepte de la maïeutique

Discussions similaires

  1. Changer la couleur des barres dans Gantt
    Par wsnatch dans le forum BIRT
    Réponses: 6
    Dernier message: 03/06/2009, 11h27
  2. [MatplotLib] Changer la couleur des barres d'erreurs
    Par Kaeguri dans le forum Calcul scientifique
    Réponses: 1
    Dernier message: 28/03/2008, 14h57
  3. [JFreechart] changer les couleurs des barres d'un diagramme
    Par keumlebarbare dans le forum Servlets/JSP
    Réponses: 15
    Dernier message: 23/11/2006, 11h06
  4. Réponses: 3
    Dernier message: 03/07/2006, 22h00

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