Custom legend with RGB Triplet bar graph
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Jonathan lange
am 5 Okt. 2023
Bearbeitet: Mann Baidi
am 5 Okt. 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 Kommentare
Akzeptierte Antwort
Mann Baidi
am 5 Okt. 2023
Bearbeitet: Mann Baidi
am 5 Okt. 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 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Legend finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!