[R] ggplot2, coord_equal and aspect ratio

From: jiho <jo.irisson_at_gmail.com>
Date: Fri, 11 Jan 2008 01:16:25 +0100

Hi everyone, Hi Hadley,

I am a heavy user of coord_equal() in ggplot2 since most of my data is spatial, on x,y coordinates. Everything works. However by enforcing an aspect ratio of 1 for the plotting region, coord_equal() usually wastes a lot of space if the region of interest is not a perfect square.

For example:

	ggplot(data=a, aes(x=x,y=y)) + geom_point() + coord_equal()
produces a square plotting region while all the data is constrained in an horizontally extended rectangle. I would expect the coordinates to stay equal but the plot to be extended so that it fills as much as the plotting region as possible. It does not appear to be currently doable. Is it a limitation of ggplot? of the underlying grids graphics? Is there a workaround this?

Thanks in advance for your help.


	qplot(x*3, x) + coord_equal()

produces some very strange scales. this looks like a bug to me. especially since:
	qplot(foo*3, foo) + coord_equal()

works as expected

PPS: I tried

        ggplot(data=a, aes(x=x,y=y)) + geom_point() + coord_equal() + scale_y_continuous(limits=c(0,1))
which has no effect. but the side effect of enforcing the square domain is that:

        ggplot(data=a, aes(x=x,y=y)) + geom_point() + coord_equal() + scale_y_continuous(limits=c(0,0.3))
has no effect either (i would expect to see only the points <0.3)



R-help_at_r-project.org mailing list
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
Received on Fri 11 Jan 2008 - 00:20:03 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Fri 11 Jan 2008 - 03:30:06 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive