How to put endpoint on Bar graph

18 Ansichten (letzte 30 Tage)
shadan Kazempour Sabahi
shadan Kazempour Sabahi am 20 Okt. 2021
Bearbeitet: dpb am 20 Okt. 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?
  3 Kommentare
shadan Kazempour Sabahi
shadan Kazempour Sabahi am 20 Okt. 2021
No I mean that I want my values for each Bar graph shows on top of my graphs for example first bar graph is 75.8 and I want this value to be appeared on top of the graph.
Scott MacKenzie
Scott MacKenzie am 20 Okt. 2021
OK, got it. I just posted an answer. Good luck.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Star Strider
Star Strider am 20 Okt. 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.
.

Weitere Antworten (1)

dpb
dpb am 20 Okt. 2021
Bearbeitet: dpb am 20 Okt. 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...

Kategorien

Mehr zu 2-D and 3-D Plots finden Sie in Help Center und File Exchange

Tags

Produkte


Version

R2017b

Community Treasure Hunt

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

Start Hunting!

Translated by