Custom legend with RGB Triplet bar graph
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Jonathan lange
le 5 Oct 2023
Modifié(e) : Mann Baidi
le 5 Oct 2023
I tried to customize my bar graph and my legend with RGB Triplet.
AS you can see the legend doesn't match with my color choice. It should be in purple in the legend.
I tried this solution, but it doesn't work
bh(2) = bar(nan,nan,0.4940 0.1840 0.5560);
What should i Do to have a match ?
figure (5)
%modifié
X=categorical({'small','medium','large'});
X=reordercats(X,{'small','medium','large'});
Y=[5 18 56];
TestL={'Mon','Tue','Wed'};
figure()
b=bar(X,Y);
hold on
b.FaceColor = 'flat';
b.CData(1,:)=[1 0 0];
%b.CData(2,:)=[0 1 0];
b.CData(2,:)=[0.4940 0.1840 0.5560];
b.CData(3,:)=[0 0 1];
bh(1) = bar(nan,nan,'r');
bh(2) = bar(nan,nan);%
bh(3) = bar(nan,nan,'b');
bh(2).CData=[0.4940 0.1840 0.5560];
legend(bh, TestL, 'location', 'best') %'northwest'
%legent at the top
xtips1 = b(1).XEndPoints;
ytips1 = b(1).YEndPoints;
labels1 = string(b(1).YData);
text(xtips1,ytips1,labels1,'HorizontalAlignment','center',...
'VerticalAlignment','bottom')
ylabel('Energie [kWh]')
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1502714/image.png)
0 commentaires
Réponse acceptée
Mann Baidi
le 5 Oct 2023
Modifié(e) : Mann Baidi
le 5 Oct 2023
Hi Jonathan,
I understand that you would like to customize the color appearing in the legend. You can try changing the color by changing the "bh(2).FaceColor". You can try the following code:
%modifié
X=categorical({'small','medium','large'});
X=reordercats(X,{'small','medium','large'});
Y=[5 18 56];
TestL={'Mon','Tue','Wed'};
figure()
b=bar(X,Y);
hold on
b.FaceColor = 'flat';
b.CData(1,:)=[1 0 0];
%b.CData(2,:)=[0 1 0];
b.CData(2,:)=[0.4940 0.1840 0.5560];
b.CData(3,:)=[0 0 1];
bh(1) = bar(nan,nan,'r');
bh(2) = bar([nan,nan]);%
bh(3) = bar(nan,nan,'b');
bh(2).FaceColor=[0.4940 0.1840 0.5560];
legend(bh, TestL, 'location', 'best') %'northwest'
%legent at the top
xtips1 = b(1).XEndPoints;
ytips1 = b(1).YEndPoints;
labels1 = string(b(1).YData);
text(xtips1,ytips1,labels1,'HorizontalAlignment','center',...
'VerticalAlignment','bottom')
ylabel('Energie [kWh]')
Hope this resolves your issue!
0 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Legend dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!