在g中将ggplot中的比例设置为1:1

时间:2012-08-12 19:41:30

标签: r ggplot2

我想在下图中设置x和y轴以具有相同的比例距离(即x轴上的0.1与y轴上的0.1相同)。有什么建议?感谢。

df <-data.frame(x = c(0,0.2,0.5), y = c(0.6,0.7,0.9))

p <-ggplot(df, aes(x, y, ymin=0, ymax=1, xmin=0, xmax=1))

p <- p + geom_point(alpha=2/10, shape=21, fill="blue", colour="black", size=5)

grid.arrange(p, p,ncol=1)

p

enter image description here

2 个答案:

答案 0 :(得分:12)

您需要使用coord_equal()

df <-data.frame(x = c(0,0.2,0.5), y = c(0.6,0.7,0.9))
p <-ggplot(df, aes(x, y, ymin=0, ymax=1, xmin=0, xmax=1))
p <- p + geom_point(alpha=2/10, shape=21, fill="blue", colour="black", size=5)

p + coord_equal()

enter image description here

答案 1 :(得分:1)

您需要使用height = 2 * width

设置图形设备的宽度和高度
library('ggplot2')
library('gridExtra')
df <-data.frame(x = c(0,0.2,0.5), y = c(0.6,0.7,0.9))

p <-ggplot(df, aes(x, y, ymin=0, ymax=1, xmin=0, xmax=1))

p <- p + geom_point(alpha=2/10, shape=21, fill="blue", colour="black", size=5)

w <- 550
png("test.png", width=w, height=2*w, units="px")

grid.arrange(p, p,ncol=1)

dev.off()

test.png