[R] Automatically placing a legend in an area with the most white space...

Jason Rupert jasonkrupert at yahoo.com
Sun Jun 28 21:51:49 CEST 2009


Jim, 

Thank you very much for your feedback.   It is very much appreciated to know this is possible.  

I tried to reproduce your post, but I ran into a problem:
> legend(emptyspace(rep(x_vals_1,3),c(y1_vals,y2_vals,y3_vals)), c("Best Guess 1" , "Best Guess 2", "Best Guess 3"), xjust=0.5, yjust=0.5, lty=1,col=c(2,4,3))

Error in legend(emptyspace(rep(x_vals_1, 3), c(y1_vals, y2_vals, y3_vals)),  : 
  could not find function "emptyspace"

I've searched via RSeek, but I have not been able to find anything on this function. 

Is emptyspace part of a package that I need to install? 

Thanks for any feedback. 


--- On Sun, 6/28/09, Jim Lemon <jim at bitwrit.com.au> wrote:

> From: Jim Lemon <jim at bitwrit.com.au>
> Subject: Re: [R] Automatically placing a legend in an area with the most white space...
> To: "Jason Rupert" <jasonkrupert at yahoo.com>
> Cc: R-help at r-project.org
> Date: Sunday, June 28, 2009, 4:04 AM
> Jason Rupert wrote:
> > At one point I believe I heard of an R package that
> would automatically find the most empty space in a plot, and
> then that answer could then be used to intelligently place a
> legend.  
> > I would like to try to apply that R package to the
> contrived example shown below, so thank you for any hints or
> tips that can be provided.   
> > x = seq(0, 1000, by = 1)
> > y1_vals<-rnorm(1000, mean = 0, sd = 50)
> > y2_vals<-rnorm(1000, mean = 25, sd = 40)
> > y3_vals<-rnorm(1000, mean = 115, sd = 40)
> > 
> > plot(x_vals, y1_vals, pch=22, col="dark red", bg =
> "dark red", cex =0.3)
> > points(x_vals, y2_vals, pch=22, col="dark blue", bg =
> "dark blue", cex =0.3)
> > points(x_vals, y3_vals, pch=22, col="dark green", bg =
> "dark green", cex =0.3)
> > 
> > abline(h=0, col="dark red", lwd=1.5, lty=6)
> > abline(h=25, col="dark blue", lwd=1.5, lty=6)
> > abline(h=115, col="dark green", lwd=1.5, lty=6)
> > 
> > legend("topright", c("Best Guess 1" , "Best Guess 2",
> "Best Guess 3"), bg="white", lwd = 2, title =
> "Randomness:")
> > 
> >   
> Hi Jason,
> The good news is that the emptyspace function found the
> largest empty space in the plot. The bad news is that there
> was not nearly enough space to fit the legend:
> 
> legend(emptyspace(rep(x_vals,3),c(y1_vals,y2_vals,y3_vals)),
>  c("Best Guess 1" , "Best Guess 2", "Best Guess
> 3"),xjust=0.5,yjust=0.5,
> lty=1,col=c(2,4,3))
> 
> Note that I had to change the name of the first vector to
> "x_vals" to get the plot to work.
> 
> Jim
> 
> 







More information about the R-help mailing list