Superimposing Normal Distribution on Histogram

조회 수: 8 (최근 30일)
Lucy
Lucy 2012년 9월 22일
Hi,
I'd like to superimpose a gaussian distribution over a histogram.
I am trying to use the histfit function, but following the histfit(x,n) format, where n is the number of bins, n must be a positive integer. I have (and must maintain) and value of n that is not an integer.
(I have to use a bin width of 0.5stdev of the data set. This results in me having 7.4623 bins.)
How do I overcome this problem?
Thx.

답변 (1개)

Wayne King
Wayne King 2012년 9월 22일
편집: Wayne King 2012년 9월 22일
Why do you say that you must have a number of bins that is not an integer? How can you have anything but a positive integer for the number of bins?
You can approximate pretty closely a bin width of 1/2*std(data)
data = randn(1000,1);
binwidth = 1/2*std(x);
numbins = round(range(data)/binwidth);
% now construct a histogram just to check bin width
[~,binctrs] = hist(data,numbins);
% look at bin width
mean(diff(binctrs))
% compare to 1/2*std(data)
1/2*std(data)
You should see there is very little difference between the bin width you want and what you get.
Now you can use that number of bins in histfit()
histfit(data,numbins)
  댓글 수: 1
Phuong Bui
Phuong Bui 2013년 9월 19일
It's perfect! However, Could you please explain why you can calculate number of bins by this formula. Many thanks

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Histograms에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by