gpt4 book ai didi

r - ggplot2 二维密度权重

转载 作者:行者123 更新时间:2023-12-05 03:15:43 26 4
gpt4 key购买 nike

我正在尝试使用 R 中的 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,我是否应该改用 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))

最佳答案

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

(我意识到我的回答并没有解决为什么帮助页面说 geom_density2d “理解”权重参数,但是当我尝试计算加权 2D-KDE 时,我需要使用除 MASS 之外的其他包。也许这是@hadley 放在帮助页面然后被忽略的 TODO?)

关于r - ggplot2 二维密度权重,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13530028/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com