Rでggplot2を使用して、2次元密度等高線でいくつかのデータをプロットしようとしています.
少し奇妙な結果が 1 つ得られます。
まず、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 を不適切に使用しているかどうか疑問に思っていました。もしそうなら、なぜ 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))