[R] Drawing a rectangle around a barplot()

Barry Rowlingson B.Rowlingson at lancaster.ac.uk
Thu Dec 2 12:07:03 CET 2004


michael watson (IAH-C) wrote:
> Hi
> 
>  I can't use box() as I don't
> want to draw a box round my entire plot, I just want to draw a box as
> the background to certain subsets of the bars.

   One idea. Edit the barplot.default function so it doesnt call plot.new.

  do:

  myBarplot = barplot.default

  then edit the myBarplot function. Add an extra parameter to the 
argument list 'add', and make it False by default:

             cex.names = par("cex.axis"), inside = TRUE, plot = TRUE,
             axis.lty = 0, add=F, ...)

  then find plot.new and wrap it in a condition:

     if(!add)plot.new()

  Now try:

  tN <- table(Ni <- rpois(100, lambda=5))
  myBarplot(tN)
  rect(2,1,6.5,8.5)

  - this puts the rectangle on top of the bars, which you dont want, so 
you call myBarplot with add=T so that plot.new isnt called and the 
barplot appears over the rectangle:

  myBarplot(tN,add=T)

works for me, if I understand your problem correctly!

Baz




More information about the R-help mailing list