rect
Draw One or More Rectangles
rect
draws a rectangle (or sequence of rectangles) with the
given coordinates, fill and border colors.
- Keywords
- aplot
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 ofdensity
means no shading lines whereas negative values (andNA
) 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 alsoNULL
) means do not fill, i.e., draw transparent rectangles, unlessdensity
is specified.- border
color for rectangle border(s). The default means
par("fg")
. Useborder = 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
andlmitre
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
library(graphics)
# NOT RUN {
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)
# }