2012-11-23 45 views
0

我想要繪製在R.GGPLOT2 2D密度重量

我得到一個有點奇怪的結果與使用2D GGPLOT2密度輪廓的一些數據。

首先,我建立了我的ggplot對象:

p <- ggplot(data, aes(x=Distance,y=Rate, colour = Company)) 

然後,我geom_points和geom_density2d繪製此。我希望根據組織的大小(OrgSize變量)對geom_density2d進行加權。然而,當我添加OrgSize作爲加權變量沒有什麼變化中的情節:

此:

p+geom_point()+geom_density2d() 

給出了相同的情節是:

p+geom_point()+geom_density2d(aes(weight = OrgSize)) 

但是,如果我做的一樣一個使用geom_smooth的黃土線,權重確實有明顯的區別。

此:

p+geom_point()+geom_smooth() 

給出了不同的情節是:

p+geom_point()+geom_smooth(aes(weight=OrgSize)) 

如果我使用不當density2d我想知道,我是否應該改爲使用輪廓和供應OrgSize爲「高度'?如果是這樣,爲什麼geom_density2d接受加權因子?下面

代碼:

require(ggplot2) 

Company <- c("One","One","One","One","One","Two","Two","Two","Two","Two") 
Store <- c(1,2,3,4,5,6,7,8,9,10) 
Distance <- c(1.5,1.6,1.8,5.8,4.2,4.3,6.5,4.9,7.4,7.2) 
Rate <- c(0.1,0.3,0.2,0.4,0.4,0.5,0.6,0.7,0.8,0.9) 
OrgSize <- c(500,1000,200,300,1500,800,50,1000,75,800) 

data <- data.frame(Company,Store,Distance,Rate,OrgSize) 

p <- ggplot(data, aes(x=Distance,y=Rate)) 

# Difference is apparent between these two 
p+geom_point()+geom_smooth() 
p+geom_point()+geom_smooth(aes(weight = OrgSize)) 

# Difference is not apparent between these two 
p+geom_point()+geom_density2d() 
p+geom_point()+geom_density2d(aes(weight = OrgSize)) 

回答

2

geom_density2d爲「接受」的權重參數,但隨後不傳遞給MASS::kde2d,由於函數沒有權重。因此,您將需要使用不同的2d密度方法。我知道我的答案並沒有解決爲什麼幫助頁面說geom_density2d「理解」權重參數,但是當我嘗試計算加權2D-KDE時,我需要使用除MASS之外的其他程序包。也許這個是@hadley放在幫助頁面,然後被忽視的TODO?)

+1

只是讓其他人有鏈接,這個問題已經在ggplot2 Github頁面上提出:https://github.com/hadley/ggplot2/issues/79 – Tumbledown

+0

看起來像是從未在項目清單中獲得過高評價。頁面頂部的鏈接404-ed,但Wayback Machine已經存檔:https://web.archive.org/web/20100731010451/http://web.mit.edu/piantado/www/blog/nonindep -density.R –