R: Draw One or More Rectangles

rect {graphics} | R Documentation

## Draw One or More Rectangles

### 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 = NA, border = NULL, lty = par("lty"), lwd = par("lwd"),
         ...)

### 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 `NA` (or also `NULL`) means do not fill, i.e., draw transparent rectangles, unless `density` is specified.
`border` | color for rectangle border(s). The default means `par("fg")`. Use `border = NA` to omit borders. If there are shading lines, `border = TRUE` means use the same colour for the border as for the shading lines.
`lty` | line type for borders and shading; defaults to `"solid"`.
`lwd` | line width for borders and shading. Note that the use of `lwd = 0` (as in the examples) is device-dependent.
`...` | graphical parameters such as `xpd`, `lend`, `ljoin` and `lmitre` 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. The position vectors will be recycled to the length of the longest.

It is a graphics primitive 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

    require(grDevices)
    ## 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 = 0.7, end = 0.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 graphics version 3.5.1 Index]