Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

New to MATLAB?

Superimposing Normal Distribution on Histogram

Asked by Lucy

Lucy

on 22 Sep 2012

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.

0 Comments

Lucy

Lucy

Products

No products are associated with this question.

1 Answer

Answer by Wayne King

Wayne King

on 22 Sep 2012
Edited by Wayne King

Wayne King

on 22 Sep 2012

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 Comment

Phuong Bui

Phuong Bui

on 19 Sep 2013

It's perfect! However, Could you please explain why you can calculate number of bins by this formula. Many thanks

Wayne King

Wayne King

Contact us