Value on top of grouped bar graph?

10 views (last 30 days)
Ibro Tutic
Ibro Tutic on 7 Aug 2017
Edited: Soyeun Jung on 8 Aug 2017
Assume we had
y=[2 3 4; 1 5 2; 6 2 5]
bar(y)
Would there be anyway to get the value of the bar graphs on top of the bars?

Answers (1)

Soyeun Jung
Soyeun Jung on 7 Aug 2017
Edited: Soyeun Jung on 8 Aug 2017
Hi Ibro,
You can calculate the bar offsets within each group and use the text function to plot the y values on top of each bar.
y = [2 3 4 ; 1 5 2; 6 2 5];
b = bar(y);
width = b.BarWidth;
for i=1:length(y(:, 1))
row = y(i, :);
% 0.5 is approximate net width of white spacings per group
offset = ((width + 0.5) / length(row)) / 2;
x = linspace(i-offset, i+offset, length(row));
text(x,row,num2str(row'),'vert','bottom','horiz','center');
end

Community Treasure Hunt

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

Start Hunting!