MATLAB Answers

Normalized histogram with gaussian fit

27 views (last 30 days)
Miquel Vega Paredes
Miquel Vega Paredes on 8 Apr 2021 at 11:32
Commented: Miquel Vega Paredes on 8 Apr 2021 at 12:38
Hi, I know how to make an histogram and make it so it is normalized according to the probability
histogram(x, nbits, 'Normalization','probability')
and also how to fit a gaussian curve to the histogram: histfit (x)
But if I use the command histfit I don't know how to normalize it according to the probability.
I would like to have both, a normalized histogram with the probability, that also has the plot of the gaussian distribution that fits to my data set.
I hope my question is clear and that you can help me :)

Accepted Answer

Alan Stevens
Alan Stevens on 8 Apr 2021 at 12:14
Here's an example showing one possibility:
gaussian = @(x, m,s) exp(-0.5*((x-m)/s).^2)/(s*sqrt(2*pi));
mu = 5; % Arbitrary mean
sigma = 1; % arbitrary standard deviation
x = mu + sigma*randn(1,400); % Arbitrary random normal data
h = histogram(x);
dh = h.BinWidth;
lo = min(x);
hi = max(x);
dxx = (hi-lo)/100;
xx = linspace(lo,hi,101);
pdf = gaussian(xx, mu, sigma);
scalefactor = sum(h.Values*dh)/(trapz(pdf)*dxx);
pdf = scalefactor*pdf;
hold on
plot(xx,pdf)
  1 Comment
Miquel Vega Paredes
Miquel Vega Paredes on 8 Apr 2021 at 12:38
Thank you so much for your help! :)

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!