From ripley at stats.ox.ac.uk  Wed Nov 26 19:02:12 2003
From: ripley at stats.ox.ac.uk (Prof Brian Ripley)
Date: Wed Nov 26 19:08:29 2003
Subject: [Rd] wishlist item: symbols() to accept asp argument? (PR#5328)
In-Reply-To: <Pine.LNX.4.44.0311261715420.14120-100000@gannet.stats>
Message-ID: <Pine.LNX.4.44.0311261755530.14191-100000@gannet.stats>

A variant on the theme:

symbols(x=2, y=6, circles=1, inches=F)

does not show a full circle, so you seem to be assuming incorrectly that
symbols() is including the symbols when calculating the plot region.

On the other hand

symbols(x=6, y=6, circles=2, inches=F, xlim=c(1,10), ylim=c(4,10), asp=1)

*does* work.  There is now way currently to avoid specifying the x-axis 
and y-axis scales.

On Wed, 26 Nov 2003, Prof Brian Ripley wrote:

> It's rather your peculiar example.  If you give more than one circle,
> asp=1 is accepted and does work (with warnings).
> 
> Symbols is not designed for one symbol (as its name says), and the way it
> sets up xlim and ylim in the R code asp=1 does not work for a single
> symbol.  In the same way plot(10, asp=1) does not work (and for the same
> reason).
> 
> That's not to say that it could not be fixed, but the issue is not that
> asp does not work with symbols() but rather that plot(10, asp=1) does not 
> work.
> 
> Arrows is designed to work with vector too ....
> 
> On Wed, 26 Nov 2003 stephen@inf.ed.ac.uk wrote:
> 
> > Here is a potential wishlist item for adding an argument (asp) to
> > symbols().  The following code produces a postscript file with two
> > pages; both should show a circle of radius 2 units.  Horizonal and
> > vertical arrows are drawn to check that the circle is of the correct
> > radius; in the first plot, the circle is wrong.  To fix this, I found
> > that I needed to first set up the plot bounds, using xlim, ylim and
> > setting asp=1 so that the units are of the same size.  (Below uses the
> > postscript driver, but I get similar results using x11() device.)
> > 
> > postscript(file="circles.ps")
> > symbols(x=6, y=6, circles=2, inches=F)
> > arrows( 6, 6, 8, 6)       #horiz radius, OK
> > arrows( 6, 6, 6, 8)       #vert  radius, not OK.
> > 
> > ## better version, but must set up axes first, and guess ylim
> > plot(NA, xlim=c(1,10), ylim=c(4,10), asp=1)
> > symbols(x=6, y=6, circles=2, inches=F, xlim=c(1,10), add=T)
> > arrows( 6, 6, 8, 6)       #horiz radius, OK
> > arrows( 6, 6, 6, 8)       #vert  radius, OK.
> > dev.off()
> > 
> > My suggestion is whether asp can be set within symbols(), such that
> > 
> >   symbols(x=6, y=6, circles=2, inches=F, asp=1)
> > 
> > would then ensure that the circle is drawn correctly.
> 
> 

-- 
Brian D. Ripley,                  ripley@stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595


[Rd] wishlist item: symbols() to accept asp argument? (PR#5328)
Prof Brian Ripley