[R] asp=1 and aspect ratio
Prof Brian Ripley
ripley at stats.ox.ac.uk
Fri Mar 19 16:38:22 CET 2004
par(pty="s") is designed to set square plotting regions. (That is in `An
Introduction to R', as well as used frequently in MASS.)
plot(0:21, 0:21, type="n", xlab="x", ylab="x")
points(x,y)
abline(0,1)
is one way to do it thereafter, as well as
plot(x,y,xlim=lims,ylim=lims);abline(0,1)
On Fri, 19 Mar 2004, Robin Hankin wrote:
>
> Hi everyone
>
> I want a square scatterplot with abline(0,1) going exactly through the
> SW and NE corners. By "square" I mean that the plotting region is
> exactly square, and that the axis limits are identical.
>
> x <- 1:20
> y <- x+rep(c(-1,1),10)
> lims <- range(c(x,y))
>
> None of the following do this:
>
> plot(x,y) ; abline(0,1) #not square
> plot(x,y,asp=1);abline(0,1) #diagonal line misses corners
>
> plot(x,y,asp=1,xaxs="i",yaxs="i");abline(0,1)
> #diagonal line misses corners
>
> plot(x,y,xaxs="i",yaxs="i");abline(0,1)
> #not square and diag misses corners
>
> plot(x,y,xlim=lims,ylim=lims,xaxs="i",yaxs="i");abline(0,1)
> #not square
>
> plot(x,y,asp=1,xlim=lims,ylim=lims,xaxs="i",yaxs="i");abline(0,1)
> #not square (plotting region about 8cm by 9.5cm)
>
>
>
> If I wrap the above lines in
>
> postscript(file="foo.ps", width=5,height=5)
> [...snip...]
> dev.off()
>
> then still none of the plots is exactly right [either one or both
> corners are missed, or the aspect ratio off]. What am I missing?
>
>
>
>
>
--
Brian D. Ripley, ripley at 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
More information about the R-help
mailing list