Dennis, If I understand correctly, you should be able to do something like this (example with exponential decay):
these.x <- (1:10)/10 plot(these.x,exp(-these.x),type="l") # create a basic plot for starting point this.usr <- par("usr") # get the plotting region limits # they are xleft, xright, ybottom, ytop # for shading lower region these.x2 <- c(this.usr[1],these.x,this.usr[2]) # an updated x-axis vector polygon(x=c(this.usr[1],these.x2,this.usr[2]), y=c(this.usr[3],exp(-these.x2),this.usr[3]), col="gray",border=NA) # for shading upper region these.x2 <- c(this.usr[1],these.x,this.usr[2]) polygon(x=c(these.x2,this.usr[2]), y=c(exp(-these.x2),this.usr[4]), col="gray",border=NA) # to make the plot frame more clear you may want to add box() Basically polygon() is able to draw a shape that has your desired curve for one side, you just have to give it enough points to get a smooth curve (all it took in this case was 10). In reality it is drawing little line segments between all the points, similar in a way to your proposal, but much faster and simpler. Exactly what you assign to x and y in polygon() will depend on if you curve increases or decreases with x, or is some kind of paraboloid type thing. but the same basic idea applies. You don't need to use a bunch of polygons, one will do. Hope that helps, Andy On Wed, Mar 24, 2010 at 3:23 PM, Dennis Fisher <fis...@plessthan.com> wrote: > Colleagues > > OS 10.5 > R: 2.10.1 > > I have a simple x-y plot for which I would like to shade the lower (or > upper) part of the interior region (i.e., the area bounded by the axes). If > the delineation between top and bottom were linear, it would be use to use > the polygon function. However, the delineation is a curve (which I can > describe by an equation). In theory, I could divide the x-axis into a large > number of regions, then draw a series of polygons side by side, the top / > bottom borders of which are lines. Is there a more elegant solution? > > Dennis > > > Dennis Fisher MD > P < (The "P Less Than" Company) > Phone: 1-866-PLessThan (1-866-753-7784) > Fax: 1-866-PLessThan (1-866-753-7784) > www.PLessThan.com > > ______________________________________________ > R-help@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide > http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. > [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.