21

geom_densityggplotの次のバリアントの意味について混乱しています。

誰かがこれらの4つの呼び出しの違いを説明できますか:

  1. geom_density(aes_string(x=myvar))
  2. geom_density(aes_string(x=myvar, y=..density..))
  3. geom_density(aes_string(x=myvar, y=..scaled..))
  4. geom_density(aes_string(x=myvar, y=..count../sum(..count..)))

私の理解は次のとおりです。

  • geom_densityだけで、曲線下の面積の合計が 1 になる密度が生成されます
  • geom_densitywith..density..基本的に同じことを行います... ?
  • ピークの..count../sum(..count..)高さを正規化されたヒストグラムのように正規化し、すべての高さの合計が 1 になるようにします。
  • ..count..分母のないそれ自体は、各ビンにその中のアイテムの数を掛けるだけです
  • ..scaled..パラメータは、密度の最大値が 1 になるようにします。

私は..scaled..非常に直感に反していると感じ、私の解釈が正しい場合、それが使用されているのを見たことがないので、それを無視したいと思います. geom_density私は主に、 と の種類の正規化された密度プロットの違いの明確化を探しています。これには...count../...引数が必要であると想定しています。ありがとう。

(関連: ggplot2 変数を y にマッピングし、 stat="bin" を使用するとエラーが発生する)

4

1 に答える 1

12

のデフォルトの美学stat_densityはであるため、デフォルトでwhich uses を..density..呼び出すと、デフォルトでプロットされます。geom_densitystat_densityy = ..density..

ソースコードを見ると、さまざまな列がどのように計算されているかがわかります

..scaled..と定義されている

densdf$scaled <- densdf$y / max(densdf$y, na.rm = TRUE)

必要に応じて無視してください。

stat_binのソースコードを見る

結果はそのように計算されます

res <- within(results, {
    count[is.na(count)] <- 0
    density <- count / width / sum(abs(count), na.rm=TRUE)
    ncount <- count / max(abs(count), na.rm=TRUE)
    ndensity <- density / max(abs(density), na.rm=TRUE)
  })

geom_histogramしたがって、 (デフォルトを使用して)の結果を比較したい場合は、stat = 'bin'設定することができ、それはあなたのためy = ..density..に計算count / sum(count)します(ビンの幅を考慮して)

geom_density(aes(y=..scaled..))と比較したい場合はstat_bin、次を使用しますgeom_histogram(aes(y = ..ndensity..))

両方を使用して同じスケールでそれらを取得することもできますが、適切に詳細な曲線の近似値を取得するには、パラメータ..count..を調整する必要があります。adjuststat_density

于 2013-03-28T01:20:14.233 に答える