2

density2d の背後にある原理に関して、より一般的な質問があります。動物の動きを視覚化するためにggplotとdensity2d関数を使用しています。私のアイデアは、動物がほとんどの場合どこにいるかを示すヒート マップを計算したり、特に関心のある領域を特定したりすることでした。それでも、density2d 関数は、かなり説明のつかないプロットを生成することがあります。

これが私が意味することです:

set.seed(4)
x<-runif(50,1,599)
y<-runif(50,1,599)
df<-data.table(x,y)

ggplot(df,aes(x=x,y=y))
+stat_density2d(aes(x=x,y=y,fill=..level..,alpha=..level..),bins=50,geom="polygon")
+coord_equal(xlim=c(0,600),ylim=c(0,600))
+expand_limits(x=c(0,600),y=c(0,600))
+geom_path()

次のようになります。 ここに画像の説明を入力

密度の推定値はあるがデータがない領域があります (x:50、y:300 付近)。

これと比較してください:

set.seed(13)
x<-runif(50,1,599)
y<-runif(50,1,599)
df<-data.table(x,y)

ggplot(df,aes(x=x,y=y))
+stat_density2d(aes(x=x,y=y,fill=..level..,alpha=..level..),bins=50,geom="polygon")
+coord_equal(xlim=c(0,600),ylim=c(0,600))
+expand_limits(x=c(0,600),y=c(0,600))
+geom_path()

次のようになります。 ここに画像の説明を入力

ここには、密度推定値が「ない」領域がありますが、実際のデータがあります (x:100、y:550 付近)。

誰かが関連する質問をしました:
R の属性値の分布を使用してヒートマップを作成します (密度ヒートマップ
ではありません) が、満足のいく答えが見つかりません。

だから私の質問は(i)なぜですか?(ii) 可能であれば回避/調整する方法は?

4

1 に答える 1

0

これは役に立つかもしれません。私はあまり詳しくありませんstat_density2d。あなたのコードと ggplot ドキュメント ( http://docs.ggplot2.org/0.9.2.1/stat_density2d.html..level.. ) を見た後、私はそうではないかもしれないと思いました。それで、..density..誰かが密度が必要な理由を説明できると思いますが、これはあなたが望んでいたグラフだと思います。

ggplot(data = df, aes(x = x, y = y)) +
stat_density2d(geom="tile", aes(fill = ..density..), contour = FALSE) +
geom_path() +
coord_equal(xlim=c(0,600),ylim=c(0,600)) +
expand_limits(x=c(0,600),y=c(0,600))

ここに画像の説明を入力

于 2014-11-16T04:26:11.883 に答える