R ggplot2二维密度权重

R ggplot2二维密度权重,r,ggplot2,visualization,R,Ggplot2,Visualization,我试图用R中的ggplot2绘制一些二维密度等值线数据 我得到一个稍微奇怪的结果 首先,我设置了ggplot对象: p <- ggplot(data, aes(x=Distance,y=Rate, colour = Company)) 给出了与此相同的绘图: p+geom_point()+geom_density2d(aes(weight = OrgSize)) p+geom_point()+geom_smooth(aes(weight=OrgSize)) 但是,如果我使用geom_

我试图用R中的ggplot2绘制一些二维密度等值线数据

我得到一个稍微奇怪的结果

首先,我设置了ggplot对象:

p <- ggplot(data, aes(x=Distance,y=Rate, colour = Company))
给出了与此相同的绘图:

p+geom_point()+geom_density2d(aes(weight = OrgSize))
p+geom_point()+geom_smooth(aes(weight=OrgSize))
但是,如果我使用geom_smooth对黄土线进行同样的处理,权重确实会产生明显的差异

这:

对此给出了不同的绘图:

p+geom_point()+geom_density2d(aes(weight = OrgSize))
p+geom_point()+geom_smooth(aes(weight=OrgSize))
我想知道我是否不恰当地使用了density2d,我是否应该使用contour和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))
require(ggplot2)

公司
geom_density2d
正在“接受”权重参数,但没有传递到
MASS::kde2d
,因为该函数没有权重。因此,需要使用不同的二维密度方法


(我意识到我的答案不是解决为什么帮助页面说geom_density2d“理解”权重参数的问题,但当我尝试计算加权2D KDE时,我需要使用除质量之外的其他软件包。也许这是@hadley在帮助页面中放的一个TODO,然后被忽略了?

只是为了让其他人有链接,这个问题已经在ggplot2github页面上提出:看起来好像从未在项目列表中占据很高的位置。页面顶部的链接为404,但回程机器已存档: