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. A zero value of `density` means no shading lines whereas negative values (and `NA`) suppress shading (and so allow color filling).
`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, unless `density` is specified.
`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= )`.
`...` | other graphical parameters can be given as arguments.

### 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.

`par` for how to specify colors.

### Examples

    ## set up the plot region:
    op <- par(bg = "thistle")
    plot(c(100, 250), c(300, 450), type = "n", xlab="", ylab="",
         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\"))")

    ## an example showing colouring and shading
    plot(c(100, 200), c(300, 450), type= "n", xlab="", ylab="")
    rect(100, 300, 125, 350) # transparent
    rect(100, 400, 125, 450, col="green", border="blue") # coloured
    rect(115, 375, 150, 425, col=par("bg"), border="transparent")
    rect(150, 300, 175, 350, density=10, border="red")
    rect(150, 400, 175, 450, density=30, col="blue",
         angle=-30, border="transparent")

    legend(180, 450, legend=1:4, fill=c(NA, "green", par("fg"), "blue"),
           density=c(NA, NA, 10, 30), angle=c(NA, NA, 30, -30))

    par(op)

[Package Contents]