How to show the bin' percentage values' in a histogram?

10 views (last 30 days)
Mukul Rao, I am really new in MATLAB and I would appreciate if direct me about this rodimentary question. I want to show the bin counts "percentage values" in histogram and my code is below but something is wrong and I can not find it!! Thank you n advance!
clc;
clear all;
close all;
%.................................................
data=xlsread('A');
dens=data(:,1);%gr/cm3
x=dens(1:1:end);
hist(x,24);
binranges = -0.06:0.08;
[bincounts] = histc(x,binranges);
percentagevalues = bincounts./sum(bincounts) * 100;
figure(2)
bar(binranges,bincounts,'histc')
for i = 1:length(bincounts)-1
x = (binranges(i) + binranges(i+1))/2;
y = bincounts(i)+1;
text(x,y,num2str(bincounts(i),'%3.2f'),'HorizontalAlignment','center');
end
  3 Comments
Maria Amr
Maria Amr on 4 Mar 2021
Edited: Maria Amr on 4 Mar 2021
Cris LaPierre, Thank you!I am working with an old version 2013a but I hav run it in a 2020a as well and it does not show the figure 2 as well. The figure(2) should show final results.
Maria Amr
Maria Amr on 4 Mar 2021
Cris LaPierre It is not working in any version! and I can not fine the issue!

Sign in to comment.

Accepted Answer

Cris LaPierre
Cris LaPierre on 4 Mar 2021
The issue is with how you defined your binranges. When you don't specify a step size, the colon operator uses 1.
binranges = -0.06:0.08
binranges = -0.0600
Since bin edges must contain at least 2 values, the result of histc is bincounts=0. Run your code with your desired stepsize and it will work.
binranges = -0.06:0.01:0.08
binranges = 1×15
-0.0600 -0.0500 -0.0400 -0.0300 -0.0200 -0.0100 0 0.0100 0.0200 0.0300 0.0400 0.0500 0.0600 0.0700 0.0800

More Answers (1)

Maria Amr
Maria Amr on 4 Mar 2021
Cris LaPierre Really appreciated!

Community Treasure Hunt

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

Start Hunting!