Histogram

23 views (last 30 days)
Mate 2u
Mate 2u on 19 Feb 2012
Answered: pavan kumar on 6 Aug 2021
Hi everybody. I have an array.
1) I do a histfit(data) to get a histogram representation of my data with a normal distribution curve on top. I want a 3rd thing on this graph and that is a smooth line representing the data (so I want the curve representing the distribution of my data on top of this to compare with the normal distribution)
Thanks.

Accepted Answer

Tom Lane
Tom Lane on 19 Feb 2012
There is a ksdensity function that can produce a kernel-smooth density estimate. The issue is that it produces a density (integrates to 1) and the histogram is not a density (bar heights sum to 1). You could figure out the area of the histogram and re-scale the ksdensity values. Alternatively, here's a way to create the histgram, normal curve, and kernel density separately:
x = [randn(100,1); 4+randn(50,1)];
[hts,ctrs] = hist(x)
bar(ctrs,hts,'hist')
area = sum(hts) * (ctrs(2)-ctrs(1))
xx = linspace(-3,7);
hold on; plot(xx,area*normpdf(xx,mean(x),std(x)),'r-')
f = ksdensity(x,xx);
plot(xx,area*f,'g-')
hold off
  2 Comments
tiago
tiago on 11 Sep 2013
Hi, thanks a lot for the help with the code There is any way to know the r^2 of the normal curve?
Thanks in advance
Tom Lane
Tom Lane on 11 Sep 2013
The normal curve is computed from the raw data, which is one-dimensional rather than the two-dimensional x/y data normally associated with R^2. So while maybe you could make something up related to the bar heights and the density values, I don't think there is a good way to apply R^2 here.

Sign in to comment.

More Answers (2)

Jyoti Verma
Jyoti Verma on 13 Nov 2019
a=[4,5,1,2,2,3,4,2,2,1]
b=[4;5;1;2;2;3;4;2;2;1]
n=length(a);
RangeMax=max(a);
RangeMin=min(a);
sizehist=RangeMax-RangeMin+1;
histogram=zeros(sizehist,1);
for i=1:n
histogram(a(i))=histogram(a(i))+1;
end
bar(histogram);

pavan kumar
pavan kumar on 6 Aug 2021
What is the procedure to find the Histogram coefficients?

Community Treasure Hunt

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

Start Hunting!