[R] Normal Curve

Nutter, Benjamin NutterB at ccf.org
Tue Dec 30 14:17:18 CET 2008


I presume this may be a task you will need to perform with some
regularity.  I took the liberty of turning Duncan Murdoch's suggested
code into a function for you (I hope you don't mind, Duncan).  Good

On a personal note, it's good to see a familiar name.  I hope all is
well with you.  Tell everyone at USM I said hello and happy New Year.

Benjamin Nutter

#*** fill.normal function plots a Normal Distribution Curve and shades
#*** region between two limits.

fill.normal <- function(lower, upper, m=0, sd=1, sd.to.show=3, ... ){
 #*** Error checks.  If both lower and upper are missing, stop the
  if(missing(lower) && missing(upper))
    stop("At least on of 'lower' or 'upper' must be specified")

 #*** If lower is missing, set shading to extend below the range of the
  if(missing(lower) && !missing(upper))
    lower <- m - sd * (sd.to.show + 1)

 #*** If upper is missing, set shading to extend above the range of the
  if(!missing(lower) && missing(upper))
    upper <- m + sd * (sd.to.show + 1)

 #*** Plot the Normal Curve
  x <- seq(m - sd * sd.to.show, m + sd * sd.to.show, by=.01)
  plot(x, dnorm(x, mean=m, sd=sd), type="l", ...)

 #*** Shade the area between lower and upper
  x <- seq(lower, upper, by=.01)
  y <- dnorm(x, mean=m, sd=sd)
  polygon(c(x, x[length(x)], x[1]), c(y, 0, 0), col="gray")

#*** To get the example given by Duncan Murdoch
> fill.normal(lower=90, upper=110, m=100, sd=15, sd.to.print=2)

#*** To shade between -1 and 1 on the Standard Normal Curve
> fill.normal(lower=-1, upper=1)

#*** To shade above 1.5 on the Standard Normal Curve
> fill.normal(lower=1.5)

#* Arguments
#* lower:      the lower limit of the shaded region.  If this is left
#*             shading will extend below the range of the plot.
#* upper:      the upper limit of the shaded region.  If this is left
#*             shading will extend avove the range of the plot.
#* m:          Mean of the Normal Distribution to be plotted.  
#*             Defaults to zero.
#* sd:         Standard Deviation of the Normal Distribution to be
#*             Defaults to 1.
#* sd.to.show: The number of standard deviations to be visible on the
#*             Defaults to 3.  For example, if the Standard Normal 
#*             Distribution is to be plotted, under default conditions,
#*             plot will extend from -3 to 3.

-----Original Message-----
From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org]
On Behalf Of AbouEl-Makarim Aboueissa
Sent: Monday, December 29, 2008 4:26 PM
To: Roland Rau; wwwhsd at gmail.com; tuechler at gmx.at; S.Ellison at lgc.co.uk;
pgoikoetxea at neiker.net; Patrick Burns; r-help at r-project.org;
Megan.Davies at snh.gov.uk; r-help at stat.math.ethz.ch;
r-help-request at stat.math.ethz.ch;
Charles.Annis at StatisticalEngineering.com; jrkrideau at yahoo.ca
Subject: [R] Normal Curve

Dear ALL:
How I show the area under the normal curve for example for the following
Assume X has N(100,15). How to show the area corresponding to the
With many thanks
AbouEl-Makarim Aboueissa, Ph.D.
Assistant Professor of Statistics
Department of Mathematics & Statistics
University of Southern Maine
96 Falmouth Street
P.O. Box 9300
Portland, ME 04104-9300

Tel: (207) 228-8389
Fax: (207) 780-5607
Email: aaboueissa at usm.maine.edu 
          aboueiss at yahoo.com

Office: 301C Payson Smith

	[[alternative HTML version deleted]]

R-help at r-project.org mailing list
PLEASE do read the posting guide
and provide commented, minimal, self-contained, reproducible code.

P Please consider the environment before printing this e-mail

Cleveland Clinic is ranked one of the top hospitals
in America by U.S. News & World Report (2008).  
Visit us online at http://www.clevelandclinic.org for
a complete listing of our services, staff and

Confidentiality Note:  This message is intended for use\...{{dropped:13}}

More information about the R-help mailing list