2012-08-12 37 views
3

我想將下圖中的x軸和y軸設置爲具有相同的比例距離(即,x軸上的0.1與0.1上的長度相同y軸)。有什麼建議?謝謝。將ggplot中的比例設置爲1: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

+1

安迪給出了一個想法。你也可以把你的繪圖設備的高度大致加倍,如:png(「name」,width = 400,height = 800)' – 2012-08-12 20:08:30

+2

你只需要做par(asp = 1)及其所有設置...哦,不,因爲這不是基本的圖形,它已經做了25年的方式,這是ggplot和你所學到的一切都是錯誤的! – Spacedman 2012-08-12 23:18:27

回答

11

您需要使用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

+0

工作過。謝謝。 – Elizabeth 2012-08-13 09:58:06

1

你需要設置你的寬度和你有高度的圖形設備的高度= 2 *寬

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