[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