On 12/31/2013 02:21 AM, Tohamy Yousef wrote:
Hi all,

  I need to know how to put a closed frame around my plot.  I am
plotting
using the field package, and I have been able to use box() with
limited
  success. Box() puts a border around only a part of  the
plot area not all.
I saw that there was a similar problem in this group but I used the suggested 
solution, par(c('bty','xpd')),
but without success.

How can I add a frame around my plot

Hi Tohamy,
Usually a box around the entire figure is wanted when embedding the plot in a document, and this is handled by the page formatting application. However, if you really need to add this:

outerBox<-function(lty=1,lwd=1,border=NULL) {
 plotlim<-par("usr")
 marg<-par("mar")
 ppin<-par("pin")
 pfin<-par("fin")
 xin<-(plotlim[2]-plotlim[1])*0.003
 yin<-(plotlim[4]-plotlim[3])*0.003
 xleft<-plotlim[1]-(plotlim[2]-plotlim[1])*
  ((pfin[1]-ppin[1])/ppin[1])*(marg[2]/(marg[2]+marg[4]))
 xright<-plotlim[2]+(plotlim[2]-plotlim[1])*
  ((pfin[1]-ppin[1])/ppin[1])*(marg[4]/(marg[2]+marg[4]))
 ybottom<-plotlim[3]-(plotlim[4]-plotlim[3])*
  ((pfin[2]-ppin[2])/ppin[2])*(marg[1]/(marg[1]+marg[3]))
 ytop<-plotlim[4]+(plotlim[4]-plotlim[3])*
  ((pfin[2]-ppin[2])/ppin[2])*(marg[3]/(marg[1]+marg[3]))
 cat(plotlim,"\n",xleft,ybottom,xright,ytop,"\n")
 par(xpd=TRUE)

rect(xleft+xin,ybottom+yin,xright-xin,ytop-yin,lty=lty,lwd=lwd,border=border)
 par(xpd=FALSE)
}

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