[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: Combining histograms and function plots

From: Ted Harding
Subject: RE: Combining histograms and function plots
Date: Wed, 29 Jan 2003 17:46:16 -0000 (GMT)

On 29-Jan-03 Toke Reichstein wrote:
> I am making histogram plots of some simulation generated data.
> These are supposed to be normally distributed. I would like to
> combine my formal statistical test with a visual plot of the data.
> But on top of the histogram I would also like to have the normal
> distribution function drawn. It is in this resepct I am experiencing
> problems.
> Q1: How do I plot a normal distribution function with the mean and
> standard deviation of my data in Octave?
> Q2: How do I plot it ontop of my histogram plots?

You could try something along the following lines.

Q1: Suppose the mean is "m" and the SD is "s".
  s2 = s*s; dx = 0.01;
  x = dx*(-300:300);
  y = (1/sqrt(2*pi*s2))*exp(-0.5*(x.*x)/s2);


will give you a plot of the normal distribution.

Q2: (See "help hist" and "help bar")
Suppose your N data are in vector Y and you have binned them
in, say,

  binw = s/5;
  bins = m + binw*(-10:10);

(i.e. 21 bins of width binw, 10 bins on either side of the mean;
but you can vary this to taste)

  [NN, XX] = hist (Y, bins);
  [xb,yb] = bar(XX,NN);
  plot(xb,yb,"-b", x+m,(N*binw)*y,"-g")

will give you the histogram in blue and the fitted normal
distribution in green. Adjust "dx", "binw", etc. to taste.

For example:

  N = 5000; rand("normal"); Y=3+1.3*rand(5000,1);
  m = mean(Y); s = std(Y);
  s2 = s*s; dx = 0.01;
  x = dx*(-400:400);
  y = (1/sqrt(2*pi*s2))*exp(-0.5*(x.*x)/s2);
  binw = s/5;
  bins = m + binw*(-20:20);
  [NN, XX] = hist (Y, bins);
  [xb,yb] = bar(XX,NN);
  plot(xb,yb,"-b", x+m,(N*binw)*y,"-g")

Hope this is useful.

E-Mail: (Ted Harding) <address@hidden>
Fax-to-email: +44 (0)870 167 1972
Date: 29-Jan-03                                       Time: 17:46:16
------------------------------ XFMail ------------------------------

Octave is freely available under the terms of the GNU GPL.

Octave's home on the web:
How to fund new projects:
Subscription information:

reply via email to

[Prev in Thread] Current Thread [Next in Thread]