[R] Text in Boxes?

Barry Rowlingson B.Rowlingson at lancaster.ac.uk
Fri Oct 7 13:38:06 CEST 2005


David Reitter wrote:

> text(labels="123", 50, 0.5, bg="green")
> 
> I've experimented with legend(),which will make the box too wide, and  
> also with rect(), which doesn't know the extent of the text shown.
> 

  strwidth and strheight know!

  here's a quickie - adjust to your specifications:

textBox <- function(x,y,text,bg,xpad=.1,ypad=1){

   w=strwidth(text)+xpad*strwidth(text)
   h=strheight(text)+ypad*strheight(text)

   rect(x-w/2,y-h/2,x+w/2,y+h/2,col=bg)
   text(x,y,text)
}

  plot(1:10)
  textBox(7,7,'Hello World This is a test','green',ypad=1)

  - possible tweaks may involve text-alignment (look at the 'adj' 
parameter of 'par()'), changing the text colour etc etc!

Baz




More information about the R-help mailing list