rect {base} | R Documentation

## Draw a Rectangle

### Description

`rect` draws a rectangle (or sequence of rectangles) with the given coordinates, fill and border colors.

### Usage

    rect(xleft, ybottom, xright, ytop, density = NULL, angle = 45,
         col = NULL, border = NULL, lty = NULL, lwd = par("lwd"), xpd = NULL)

### Arguments

`xleft` | a vector (or scalar) of left x positions.
`ybottom` | a vector (or scalar) of bottom y positions.
`xright` | a vector (or scalar) of right x positions.
`ytop` | a vector (or scalar) of top y positions.
`density` | the density of shading lines, in lines per inch. The default value of `NULL` means that no shading lines are drawn. Non-positive values of `density` also inhibit the drawing of shading lines.
`angle` | angle (in degrees) of the shading lines.
`col` | color(s) to fill or shade the rectangle(s) with. The default `NULL`, or also `NA` do not fill, i.e., draw transparent rectangles.
`border` | color for rectangle border(s).
`lty` | line type for borders; defaults to `"solid"`.
`lwd` | width for borders.
`xpd` | logical (``expand''); defaults to `par("xpd")`. See `par(xpd= )`.

### Details

The positions supplied, i.e., `xleft, ...`, are relative to the current plotting region. If the x-axis goes from 100 to 200 then `xleft` must be larger than 100 and `xright` must be less than 200.

It is a primitive function used in `hist`, `barplot`, `legend`, etc.

### See Also

`box` for the ``standard'' box around the plot; `polygon` and `segments` for flexible line drawing.

### Examples

    ## set up the plot region:
    op <- par(bg = "thistle")
    plot(c(100, 250), c(300, 450), type = "n", xlab="",
         main = "2 x 11 rectangles; `rect(100+i,300+i,  150+i,380+i)'")
    i <- 4*(0:10)
    ## draw rectangles with bottom left (100, 300)+i and top right (150, 380)+i
    rect(100+i, 300+i, 150+i, 380+i, col=rainbow(11, start=.7,end=.1))
    rect(240-i, 320+i, 250-i, 410+i, col=heat.colors(11), lwd=i/5)
    ## Background alternating  ( transparent / "bg" ) :
    j <- 10*(0:5)
    rect(125+j, 360+j,   141+j, 405+j/2, col = c(NA,0), border = "gold", lwd = 2)
    rect(125+j, 296+j/2, 141+j, 331+j/5, col = c(NA,"midnightblue"))
    mtext("+  2 x 6 rect(*, col = c(NA,0)) and  col = c(NA,\"m..blue\"))")
    par(op)

[Package Contents]