It's probably a beginner's question: How do I show text in boxes? That is, can I specify a background color for text output with text() ? The following doesn't work as I would expect: 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. The concrete application for this is are multiple time series shown in different colors, and I'd like to show the boxed text (with the appropriate colors) right next to (the maximum of) each time series in the diagram. Color text is hard to read, so I'd like nice colored boxes around black text. Thanks for your help :)
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
David Reitter wrote:> It's probably a beginner's question: > > How do I show text in boxes? > That is, can I specify a background color for text output with text() ? > > The following doesn't work as I would expect: > > 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. > > The concrete application for this is are multiple time series shown > in different colors, and I'd like to show the boxed text (with the > appropriate colors) right next to (the maximum of) each time series > in the diagram. Color text is hard to read, so I'd like nice colored > boxes around black text. >Have a look at the plotrix package, particularly "textbox" and "boxed.labels". I would like to know if there are any enhancements you could suggest, as I am close to uploading the next version. Jim