## Superimposing Normal Distribution on Histogram

### Lucy (view profile)

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.

## Products

No products are associated with this question.

### Wayne King (view profile)

on 22 Sep 2012
Edited by Wayne King

### Wayne King (view profile)

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)`

Phuong Bui

### Phuong Bui (view profile)

on 19 Sep 2013

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

#### Join the 15-year community celebration.

Play games and win prizes!

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