# [R] How to draw a rect() behind a hist() ?

Peter Ehlers ehlers at ucalgary.ca
Wed Dec 1 04:42:39 CET 2010

```On 2010-11-30 17:27, Jason Edgecombe wrote:
> Hi,
>
> I have the following code:
>
> hist(gps\$heartpercent, breaks=5)
> rect(90, par("usr")[3], 100, par("usr")[4], col = "red")
>
> How do I get the rectangle to appear behind the histogram. Barring that,
> how can I make certain bars of the histogram to be a certain color?
>
Here are a couple of ways:
1. using hist(); just plot the histogram twice.

x <- rnorm(1000, 100, 5)
hist(x)
rect(90, 0, 98, par('usr')[4], col = 'red')
hist(x, add = TRUE)

For coloured bars, use a colour vector:

hist(x, breaks = 5, col = c(3,3,4,4,2))

2. using lattice;

histogram(x,
panel=function(...){
panel.rect(90,0,98,1000,col='bisque',border=NA)
panel.histogram(...,col='transparent',lwd=2)
}
)

Again, you can define bar colours with a colour vector.
Lattice is more customizable albeit a little harder
to learn.

Peter Ehlers

> Thanks,
> Jason
>

```