On 07/22/2010 02:06 PM, li li wrote:
Hi all,
   I am have some difficulty with the legend function.
   I need to add a legend to describe the different line types in a plot. The
legend box is small.
It did not include sufficient length of each line type to help distinguish
the differnt line types.
   Is there a way to fix this.

Hi Hannah,
I thought that there was some argument to specify the horizontal proportion of the legend box devoted to text, but I can't find it. Perhaps you could roll your own legend using the rect, text and line functions.

wide.legend<-function(x,y=NA,legend,lty=1,lwd=1,bg=par("bg"),
 border=par("fg"),col=par("fg"),cex=1,
 xjust=0,yjust=1,text.prop=0.5,...) {

 if(is.na(y) && is.list(x)) {
  y<-unlist(x[[2]])
  x<-unlist(x[[1]])
 }
 boxwidth<-(max(strwidth(legend))+strwidth("o"))/text.prop
 boxheight<-strheight(paste(legend,collapse="\n"))+strheight("o")
 boxleft<-x-boxwidth*xjust
 boxbottom<-y-boxheight*yjust
 rect(boxleft,boxbottom,boxleft+boxwidth,
  boxbottom+boxheight,col=bg,border=border)
 text(boxleft+boxwidth*(1-text.prop),
  boxbottom+1:length(legend)*strheight("O"),
  legend,cex=cex,adj=c(0,0.5),...)
 hgap<-strwidth("o")
 segments(boxleft+hgap,
  boxbottom+1:length(legend)*strheight("O"),
  boxleft+boxwidth*(1-text.prop)-hgap,
  boxbottom+1:length(legend)*strheight("O"),
  lty=lty,lwd=lwd,col=col)
}

Pretty rough, but it's a start

Jim

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to