[R] position of a legend-object

Marc Schwartz MSchwartz at mn.rr.com
Thu Jun 9 19:22:46 CEST 2005


On Thu, 2005-06-09 at 19:05 +0200, Carsten Steinhoff wrote:
> Hello,
>  
> I've written a function that plots a few functions in a diagram.
> The xlim and or ylim is not always the same, and set automatically by R.
> A legend is part of this object.
> Now the problem is: where to put the legend? Me would help a function that
> returns the limits and scaling of the axis.
>  
> Thanks for your help.
>  
> Carsten

You can explicitly set the xlim and ylim values in most plotting
functions. If your function is based upon an underlying R function, just
pass xlim and ylim as arguments from your function so that you can
"leave room" for a legend. 

See ?plot.default for an example.

Alternatively, using par("usr") will get you the ranges of the axes once
a plot is created:

> plot(1:10)

# c(x1, x2, y1, y2)
> par("usr")
[1]  0.64 10.36  0.64 10.36

See ?par for more information. Note that if you might be using log
scaling on one or both axes, the output of par("usr") needs to be
adjusted:

> plot(1:10, log = "xy")

> par("usr")
[1] -0.04  1.04 -0.04  1.04

# Use this correction for both axes in this case
# or just:
# 10 ^ par("usr")[1:2] for x
# 10 ^ par("usr")[3:4] for y

> 10 ^ par("usr")
[1]  0.9120108 10.9647820  0.9120108 10.9647820


HTH,

Marc Schwartz




More information about the R-help mailing list