[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
>



More information about the R-help mailing list