On 22-Mar-10 11:13:39, Martin Ivanov wrote: > Dear R users, > I need to plot to perpendicular straight lines. However, although > I set the coefficients so that the lines are perpendicular, they > do not look to be so in the plot. Here is a minimal working example: > > plot(x=c(-1, 1), y=c(-1, 1)); abline(a=0, b=1/sqrt(2)); abline(a=0, > b=-1/sqrt(2)) > > Please tell me if the same problem is valid by you. I am running > R-2.10.1 on Linux. > > Is there a way out of this? > > Regards, > Martin
Hi Martin, For one thing, your coefficients are wrong for orthogonality. The condition for y = a1 + b1*x and y = a2 + b2*x to be perpendicular to each other is that b1*b2 = -1. It will look much better with plot(x=c(-1, 1), y=c(-1, 1)); abline(a=0, b=1/sqrt(2)); abline(a=0, b=-sqrt(2)) but probably will not look quite right, because the plot() command does not necessarily ensure that the x and y axes are identically scaled (in screen coordinates) when they appear on screen. To ensure this as well, you need to set the aspect-ratio to be 1: plot(x=c(-1, 1), y=c(-1, 1), asp=1); abline(a=0, b=1/sqrt(2)); abline(a=0, b=-sqrt(2)) It can take a little while to discover the parameter "asp". >From ?plot (which does not mention it) you will find a suggestion to look at ?plot.default for further details, where you can read: plot(x, y = NULL, type = "p", xlim = NULL, ylim = NULL, log = "", main = NULL, sub = NULL, xlab = NULL, ylab = NULL, ann = par("ann"), axes = TRUE, frame.plot = axes, panel.first = NULL, panel.last = NULL, asp = NA, ...) and: asp: the y/x aspect ratio, see 'plot.window'. And then ?plot.window tells you all about it: asp: If 'asp' is a finite positive value then the window is set up so that one data unit in the x direction is equal in length to 'asp' * one data unit in the y direction. This even applies if you distort a previous plot window by dragging one edge of it. For example, kill any existing plot window, and then execute the above to create a new one. Then, say, drag the left-hand edge so as to halve the width without changing the height. Then repeat the plot commands. You will find that in the new plot the two lines are again perpendicular, the shape of the window has not changed, but the y-axis has now been extended numerically so that the aspect ratio (as defined above) is still 1.0! Hoping this helps! Ted. -------------------------------------------------------------------- E-Mail: (Ted Harding) <ted.hard...@manchester.ac.uk> Fax-to-email: +44 (0)870 094 0861 Date: 22-Mar-10 Time: 11:43:32 ------------------------------ XFMail ------------------------------ ______________________________________________ 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.