[R] filling the area between two curves in a plot

Thomas Petzoldt thpe at hhbio.wasser.tu-dresden.de
Thu Feb 19 18:05:03 CET 2004

Rajarshi Guha wrote:

> Hi,
>   does anybody know how I can color the area enclosed between two curves
> on a plot?

This is possible with the polygon function. Try something like:

# create some data
x <- sort(runif(10, min=0, max=10))
y <- runif(10, min=2, max=5)

plot(x,y, type="n", ylim=c(0,5))
polygon(c(x[1], x, x[length(x)]), c(0, y, 0), col="green")

# ... alternatively you can construct a polygon
# from two separate curves with

# create some more data
x <- sort(runif(10, min=0, max=10))
y1 <- runif(10, min=2, max=5)
y2 <- runif(10, min=0, max=2)

#Polygon-Plot 2
polygon(c(x, rev(x)), c(y1, rev(y2)), density=20)

Hope it helps!

Thomas P.

More information about the R-help mailing list