Re: [R] Reverse plot axes with xlim=rev(range(x)) fails with asp=1

From: Roger Bivand <Roger.Bivand_at_nhh.no>
Date: Sun 06 Mar 2005 - 06:19:04 EST


On Sat, 5 Mar 2005, Gregory Jefferis wrote:

> Dear R users,
>
> I would like to reverse the axes on some xy plots (for example to set the
> origin at the top left rather than the bottom left). I had planned to use
> something of the following form:
>
> plot(y=y<-c(20,4,5,6),x=x<-c(10,20,30,40),ylim=rev(range(y)))
>
> ie reversing ylim to reverse the y axis. This works fine however I also
> want to use the parameter asp=1 to ensure that equal distances in the x or y
> direction are plotted as such on the screen. However the simple example I
> showed above now fails:
>
> > plot(y=y<-c(20,4,5,6),x=x<-c(10,20,30,40),ylim=rev(range(y)),asp=1)
>
> The actual ylim used is considerably less than it should be, so no points
> appear on the plot.
>
> Can anyone suggest a simple remedy?

> plot(y=-y,x=x, ylim=range(-y), asp=1, axes=FALSE)
> box()
> axis(1)

> axis(2, at=seq(-20,-5,5), label=seq(20,5,-5))

is a simple kludge, the explanation is touched on in a comment in src/main/plot.c, after line 564:

and may be related to the sign of ydelta being dropped in line 652 (for the y axis) and Gscale() being possibly called in line 666 with incorrect assumptions about whether to add or subtract the correction factor - untried!

>
> Many thanks,
>
> Greg Jefferis.
>
> PS I would guess that the origin of this behaviour is that plot.window
> expects xlim (and ylim) to be in the order xmin,xmax (or ymin,ymax) when it
> sets about redefining xlim and ylim if asp!=NA. If that suggestion is
> correct, I'm not quite sure why the restriction is necessary.
>
>

-- 
Roger Bivand
Economic Geography Section, Department of Economics, Norwegian School of
Economics and Business Administration, Breiviksveien 40, N-5045 Bergen,
Norway. voice: +47 55 95 93 55; fax +47 55 95 93 93
e-mail: Roger.Bivand@nhh.no

______________________________________________
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
Received on Sun Mar 06 06:24:12 2005

This archive was generated by hypermail 2.1.8 : Fri 03 Mar 2006 - 03:30:41 EST