AW: Re: [R] R-Graphics: Scaling axis

Till Baumgaertel till.baumgaertel at
Wed Mar 12 10:38:45 CET 2003

Thank you!
Adding asp=1 to the plot-command does exactly what I want!


>-- Original Nachricht --
>From: ripley at
>Date: Wed, 12 Mar 2003 07:15:30 +0000 (GMT)
>To: Thomas W Blackwell <tblackw at>
>cc: Till Baumgaertel <till.baumgaertel at>,
>        r-help <r-help at>
>Subject: Re: [R] R-Graphics: Scaling axis
>Excuse me, but that is not `how you do it'. R has two automated ways. One
>is the parameter `asp': see ?plot.window, and the other is the function

>eqscplot() in package MASS.  Neither need manual intervention (unless your
>output device cannot plot square pixels as square).
>We need to be a bit careful about the length of axes: if x ranges from
>to 10, the x axis does not (unless you set xaxs="i").  That's why setting
>the plot region (e.g. using par(pty="s") or via the margins) often does
>not do what one wants: the plot region may be square but the scales 
>On Tue, 11 Mar 2003, Thomas W Blackwell wrote:
>> On Wed, 12 Mar 2003, Till Baumgaertel wrote:
>> > how can I scale the x- and y-axis of a "plot" to the same scale?
>> >
>> > My problem: The following command sequence produces the plot in a square.
>> > What I want is the x-axis to be 5 times as wide (measured e.g. in pixels)
>> > as the y-axis is long (because y ranges from -1 to 1 and x ranges from
>> > to 10).
>> It depends what graphics device you are using.  If the plot is in
>> a window on the computer screen, then resizing the window reshapes
>> the plot to whatever aspect ratio you want, interactively, so the
>> aspect ratio is not an issue.  
>It *is* an issue for many statistical plots which rely on interpretation
>via Euclidean distance, e.g. MDS plots.  One wants to resize and keep the
>aspect ratio: hence the parameter `asp', and the different resizing 
>options on the Windows graphics device.
>> For a hardcopy device, such as
>> postscript(), the traditional way to control the aspect ratio is
>> to fill up the rest of the page with margins.  For a nice, long
>> narrow plot ...
>> postscript("", pointsize=11, horizontal=T)
>> par(mar=c(9.5,3.5,3,2), las=1)
>> plot(x, y, type="p")
>> 	... but after printing one test page, I always take a ruler
>> and measure the spacing of the tick marks and calculate how to
>> adjust the margin widths better.  Seriously.  I use a ruler.
>> It's clunky, but if you care about the graphical scales, that's
>> how you do it, and no complaints.  Even the difference between "A4"
>> and "letter" paper sizes would throw off any automated calculation.
>Not so.  The size of the plot region in inches is available from the 
>graphics parameters, specifically par("pin").
>Brian D. Ripley,                  ripley at
>Professor of Applied Statistics,
>University of Oxford,             Tel:  +44 1865 272861 (self)
>1 South Parks Road,                     +44 1865 272866 (PA)
>Oxford OX1 3TG, UK                Fax:  +44 1865 272595

Mehr Power für Ihre eMail - mit den neuen Leistungspaketen bei

More information about the R-help mailing list