How do i put in a bar group the value of each bar on top?

2 views (last 30 days)
Hi, I have a grouped bar graph and i want to add text off the value on the top of each bar in each group.
Example :
Y_as = [ 165 160 121 ; 59 84 62 ; 106 76 58 ]
X_as = categorical({'1. apples & pears' , '2. apples', '3. pears'})
HB = bar(X_as , Y_as , 'group')
%Result is in the image
%I know you need to put your numbers to a string bij @num2str but thats it.
%Do i use a for loop?
If somewhone can help me please give me also some comment why you use that code.
Thanks in advance

Accepted Answer

KL
KL on 20 Nov 2017
Edited: KL on 20 Nov 2017
Try this,
Y_as = [ 165 160 121 ; 59 84 62 ; 106 76 58 ] ;
X_as = categorical({'1. apples & pears' , '2. apples', '3. pears'});
HB = bar(X_as , Y_as , 'group');
a = (1:size(Y_as,1)).';
x = [a-0.25 a a+0.25];
for k=1:size(Y_as,1)
for m = 1:size(Y_as,2)
text(x(k,m),Y_as(k,m),num2str(Y_as(k,m),'%0.2f'),...
'HorizontalAlignment','center',...
'VerticalAlignment','bottom')
end
end

More Answers (1)

KSSV
KSSV on 20 Nov 2017

Categories

Find more on Environment and Settings in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!