[R] asp and ylim

David Epstein David.Epstein at warwick.ac.uk
Sun Jul 20 19:27:19 CEST 2008


#See David Williams' book "Weighing the odds", p286

y <- c(1.21, 0.51, 0.14, 1.62, -0.8,
         0.72, -1.71, 0.84, 0.02, -0.12)
ybar <- mean(y)
ylength <- length(y)
ybarv <- rep(ybar, ylength)
x <- 1:ylength
plot(x,y,asp=1,xlab="position",ylab="ybar",type="n",ylim=c(-1,1))
segments(x[1], ybar, x[ylength], ybar)
segments(x,ybarv,x,y)
points(x, ybarv, pch=21, bg="white")
points(x,y,pch=19,col="black")

With asp=1, the value of ylim seems to be totally ignored, as in the  
above code. With asp not set, R plays close attention to the value of  
ylim. This is not intuitive behaviour, or is it?

How can I set the aspect ratio, and simultaneously set the plot  
region? The aspect ratio is one number and the plot region is given  
by four numbers (xleft, xright, yleft, yright). Logically, these 5  
numbers are independent of each other and arbitrary, provided  
xleft<xright and yleft<yright. This should give a one-to-one  
bijection between 5-tuples and plots, determined up to a change of  
scale that is uniform in the x- and y-dirctions. My code above shows  
the (to me) obvious attempt, which fails.

Thanks
David



More information about the R-help mailing list