Maybe what I am missing is how to set the "device region" mentioned
in Brian's email. I have tried various searches, but I haven't had
any luck in finding a reference to "device region". However, I'm not
sure that changing the device region will help if one stays with plot
(), because the default seems to be that the physical plot region is
approximately square, and I haven't found a way to control the size
of the physical plot region. The help files for eqscplot() and xyplot
() indicate that they are meant for scatter plots. But lots of plots
are not scatter plots. I was only using a scatter plot because Rolf's
code did so, and he thought I could do what I wanted inside plot(),
which I can't at the moment.
Perhaps the best solution is to live with plot() as it is. If I need
the picture for a paper, I will export data to Matlab or Mathematica
or Illustrator, where I can get the control I want.
Thanks for all your help.
David
On 20 Jul, 2008, at 23:14, Prof Brian Ripley wrote:
Take a look at eqscplot() in package MASS for a different approach.
You last para forgets that once you have set the device region and
the margins the physical plot region and hence its aspect ratio is
determined -- see the figures in 'An Introduction to R'.
On Sun, 20 Jul 2008, David Epstein wrote:
#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
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-
guide.html
and provide commented, minimal, self-contained, reproducible code.
--
Brian D. Ripley, [EMAIL PROTECTED]
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
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.