Full_Name: Michel Lang Version: 2.2.1 OS: 2.6.16-gentoo-r9 on x86_64 Submission from: (NULL) (62.143.164.39) plot(-2:2, -2:2, type = "n") symbols(x = 0, y = 0, squares = 2, inches = FALSE, add = TRUE) This should plot a square with its center at (0,0) and side length 2, in other words a square from (-1,-1) as lower left angle to (1,1) as upper right angle. However, if you execute this line abline(h = c(-1,1)) you see that the squares height is definitely too large.
symbols() draws squares too high (PR#9027)
3 messages · Michel Lang, Duncan Murdoch, Brian Ripley
On 6/23/2006 9:55 AM, michellang at gmail.com wrote:
Full_Name: Michel Lang Version: 2.2.1 OS: 2.6.16-gentoo-r9 on x86_64 Submission from: (NULL) (62.143.164.39) plot(-2:2, -2:2, type = "n") symbols(x = 0, y = 0, squares = 2, inches = FALSE, add = TRUE) This should plot a square with its center at (0,0) and side length 2, in other words a square from (-1,-1) as lower left angle to (1,1) as upper right angle. However, if you execute this line abline(h = c(-1,1)) you see that the squares height is definitely too large.
This is not a bug. The documentation says that when inches = FALSE, the units are those of the x axis, so horizontal lines are not relevant. Try abline(v=c(-1, 1)) If you want your x and y scales to be identical, I think you need to use grid and lattice, rather than traditional graphics, and to set aspect="iso". Duncan Murdoch
On Fri, 23 Jun 2006, Duncan Murdoch wrote:
On 6/23/2006 9:55 AM, michellang at gmail.com wrote:
Full_Name: Michel Lang Version: 2.2.1
That's long obselete, and quite possibly the documentation was wrong then (it was at some point in the midterm past).
OS: 2.6.16-gentoo-r9 on x86_64 Submission from: (NULL) (62.143.164.39) plot(-2:2, -2:2, type = "n") symbols(x = 0, y = 0, squares = 2, inches = FALSE, add = TRUE) This should plot a square with its center at (0,0) and side length 2, in other words a square from (-1,-1) as lower left angle to (1,1) as upper right angle. However, if you execute this line abline(h = c(-1,1)) you see that the squares height is definitely too large.
This is not a bug. The documentation says that when inches = FALSE, the units are those of the x axis, so horizontal lines are not relevant. Try abline(v=c(-1, 1)) If you want your x and y scales to be identical, I think you need to use grid and lattice, rather than traditional graphics, and to set aspect="iso".
par(asp=1) or eqscplot (MASS) does this perfectly well in base graphics.
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