Thanks! Barry's suggestion did the trick.
Mick -----Original Message----- From: Marc Schwartz [mailto:[EMAIL PROTECTED] Sent: 02 December 2004 13:10 To: Barry Rowlingson Cc: michael watson (IAH-C); R-Help Subject: Re: [R] Drawing a rectangle around a barplot() On Thu, 2004-12-02 at 11:07 +0000, Barry Rowlingson wrote: > 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 In follow up to Baz' post, the 'add' argument is already in the barplot2() function, which is in the gregmisc bundle (gplots package) on CRAN. I have also been looking at adding a 'panel.first' and 'panel.last' argument to barplot2, to enable functionality similar to that of plot.default(). This would provide the ability to add additional plot components before and/or after the bars are drawn. I'll get to that as soon as time permits. HTH, Marc Schwartz ______________________________________________ [EMAIL PROTECTED] mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
