# How to put endpoint on Bar graph

13 views (last 30 days)
shadan Kazempour Sabahi on 20 Oct 2021
Edited: dpb on 20 Oct 2021
y = [75.8 78.05; 81 80.30; 91 80.78];
b = bar(y);
Hello , I want to add endpoints on each graph. How should I do that?
Scott MacKenzie on 20 Oct 2021
OK, got it. I just posted an answer. Good luck.

Star Strider on 20 Oct 2021
In R2021b, this is straightforward (and described in Specify Labels at the Ends of Bars).
y = [75.8 78.05; 81 80.30; 91 80.78];
figure
b = bar(y);
for k = 1:numel(b)
xtips = b(k).XEndPoints;
ytips = b(k).YEndPoints;
text(xtips, ytips, compose('%.2f',y(:,k)), 'Horiz','center', 'Vert','bottom')
end
In R2017b, this is a bit more involved —
figure
b = bar(y);
for k = 1:numel(b)
ctr = bsxfun(@plus, b(k).XData, [b(k).XOffset]');
ydt = b(k).YData;
str = compose('%.2f',ydt);
text(ctr,ydt, str, 'HorizontalAlignment','center', 'VerticalAlignment','bottom')
end
Experiment to get different results.
.

dpb on 20 Oct 2021
Edited: dpb on 20 Oct 2021
Like
maybe?
There's a klunky example at the doc for bar, but it is far simpler than the multi-step illustration to write it as
hB=bar(y);
arrayfun(@(h)text(h.XEndPoints,h.YEndPoints, ...
compose('%.1f',h.YData), ...
'HorizontalAlignment','center', ...
'VerticalAlignment','bottom'),hB)
Salt the format string to suit...

R2017b

### Community Treasure Hunt

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

Start Hunting!

Translated by