MATLAB: How to show the bin’ percentage values’ in a histogram

bin countshistchistogrampercentage values

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

Best Answer

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
Related Question