[R] Coord_equal in ggplot2

Dieter Menne
Tue, 19 May 2009 14:14:56 -0000

ONKELINX, Thierry <Thierry.ONKELINX <at> inbo.be>
writes:
>
> I'm plotting some points on a graph where both axes need to have the
> same scale. See the example below. Coord_equal does that trick but in
> this case it wastes a lot of space on the y-axis. Setting the limits of
> the y-axis myself was no avail.
>
> Any suggestions to solve this problem?
>
> library(ggplot2)
> ds <- data.frame(x = runif(1000, min = 0, max = 300000), y = runif(1000,
> min = 140000, max = 260000))
> ggplot(ds, aes(x = x, y = y)) + geom_point() + coord_equal()
> ggplot(ds, aes(x = x, y = y)) + geom_point() + coord_equal() +
> scale_x_continuous(limits = c(0, 300000)) + scale_y_continuous(limits >
c(140000, 260000))

I think you need to set ratio in addition to cut off the extra space.
(Not tried)

>From Docs:

Equal scales. coord_equal ensures that the x and y axes have equal scales: i.e.
1 cm along the x axis represents the same range of data as 1 cm along the y
axis. By default it will assume that you want a one-to-one ratio, but you can
change this with the ratio parameter. The aspect ratio will also be set to
ensure that the mapping is maintained regardless of the shape of the output
device. See the documentation of coord_equal() for more details.

Dieter