2010-08-25 60 views
3

我有一個數據組像下面這樣:散點圖以相等的軸

DataFrame <- data.frame(x=runif(25),y=runif(25), 
         z=sample(letters[1:4],25,rep=TRUE)) 

和使用格包,我可以與等於軸的散點圖(用1:1線經歷的中心)採用下面幾行:

xyplot(y ~ x | z, data=DataFrame, 
     scales=list(relation="free"), 
     prepanel=function(x,y,...) { 
     rg <- range(na.omit(c(x,y))) 
     list(xlim=rg,ylim=rg) 
     },panel=function(x,y,...) { 
     panel.abline(0,1) 
     panel.xyplot(x,y,...) 
     }) 

在GGPLOT2,我這一步得到:

ggplot(data=DataFrame) + geom_point(aes(x=x,y=y)) + 
    facet_grid(~z,scales="free") + coord_equal(ratio=1) + 
    geom_abline(intercept=0,slope=1) 

但我不知道日在coord_equal()是我正在尋找的功能。 ggplot2中的等效函數調用是什麼?

回答

1

也許facet_wrap()是一個更好的選擇,而據我所知,xlimylim單個面板控制不GGPLOT2可用。

+2

如果您需要在每個面板上進行這種控制,那麼您在技術上就不再面向了,它根據定義被設計用於通用軸。相反,您可以嘗試在** gridExtra **包中查找類似'grid.arrange'的東西。 – joran 2011-12-02 01:06:38

5

你的問題在於設置自由的刻面尺度。一旦您將刻面刻度設置爲空閒,您就不能再添加coord_equal()如果您消除了空閒刻度,則coord_equal()可以正常工作。

+0

謝謝 - 但我想要我的秤免費... – hatmatrix 2010-08-26 04:11:43