我正在尝试使用 R 中的 ggplot2 绘制一些具有 2d 密度轮廓的数据。
我得到了一个有点奇怪的结果。
首先,我设置了我的 ggplot 对象:
p <- ggplot(data, aes(x=Distance,y=Rate, colour = Company))
然后我用 geom_points 和 geom_density2d 绘制它。我希望 geom_density2d 根据组织的规模(OrgSize 变量)进行加权。但是,当我将 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))