Histogram with values above the bars

164 views (last 30 days)
Tiago Dias on 5 Dec 2018
Commented: cui on 31 Aug 2020
Hello,
I got data with values form 90 to 100, and i can have decimal values like 90.4 95.3. My goal is to create an histogram with binedges (i tihnk is the proper name) with 90-91, 91-92, 92-93, etc.
A = randi([90 100],50,1);
B = rand(50,1);
C = A + B;
histogram(B(:,1),'BinWidth',1);
And I would to know how to place the on top of each bar, how many values from 90 to 91, 91 to 92, etc
Thanks for your time
0 CommentsShowHide -1 older comments

Sign in to comment.

Accepted Answer

Steven Lord on 5 Dec 2018
I would not depend upon the tick locations as Luna's solution does. Use the data stored in the histogram object itself instead.
Generate some sample data and create the histogram.
data = 10*rand(1,100);
x = histogram(data,'BinWidth',1);
Retrieve the locations of the edges and the heights of the bars.
E = x.BinEdges;
y = x.BinCounts;
Find the X coordinates of the center of the bars. This takes the left edge of each bar and adds half the distance to the next bar edge.
xloc = E(1:end-1)+diff(E)/2;
Put the labels 1 unit above the top of the bar center.
text(xloc, y+1, string(y))
4 CommentsShowHide 3 older comments
cui on 31 Aug 2020
h = histogram('Categories',Categories,'BinCounts',N);
y = h.Values;
text(1:length(N), y+50, string(y));

Sign in to comment.

More Answers (1)

Luna on 5 Dec 2018
Hello Tiago,
Try this for getting labels on the top of the bars of your histogram.
data = 10*rand(1,100);
x = histogram(data,'BinWidth',1);
labels = num2str(x.BinCounts');
xt = get(gca, 'XTick');
xVals = xt - ([0 diff(xt)]/2);
xVals(1) = [];
text(xVals, x.BinCounts, labels, 'HorizontalAlignment','center', 'VerticalAlignment','bottom')
But first check your data to plot histogram there is something wrong about it:
A = randi([90 100,100,1]); % look randi function and its inputs
B = rand(50,1);
C = A + B; % check A and B have the same sizes to add
2 CommentsShowHide 1 older comment
Luna on 5 Dec 2018
Edited: Luna on 5 Dec 2018
Put 'BinWidth' as 0.1 with this data. Otherwise it does not seem OK
Don't forget to accept the answer if it works :)

Sign in to comment.

Categories

Find more on Annotations 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!

Translated by