2013-03-27 10 views
15

私はggplotでgeom_densityの次亜種の意味について混乱しています:さまざまなggplot2密度をどのように解釈するのですか?

  1. geom_density(aes_string(X = 'MYVAR'))VS:

    誰かがこれら四つの呼び出しの間の違いを説明していただけます

  2. geom_density(aes_string(X = 'MYVAR'、Y = '..密度.. '))VS
  3. geom_density(aes_string(X =' MYVAR'、Y = '..スケーリング..'))VS
  4. geom_density(aes_string(x = 'myvar'、y = '.. count ../ sum(.. count ..)'))?

    • geom_densityだけではその面積曲線の合計の下1
    • geom_densityから..density..と基本的に同じことを行い密度が生成されます...:

私の理解では、ということでしょうか?

  • ..count../sum(..count..)全て高さが
  • その中のアイテム#によってだけ各ビンを乗算します分母ずに単独で1
  • ..count..に合計することを確実に、より多くの正規化ヒストグラムのようになり、ピークの高さを正規化します..scaled..パラメータには、私は非常に直観に反し..scaled..を見つけて、それはそれの私の解釈が正しいかどうので、私はそれを無視したいの使用見たことがない、それはとても密度の最大値は1
  • であることを確認します。私は主に、geom_densityと一種の正規化濃度プロットの違いを明確にすることを探しています。これは、...count../...引数が必要であると仮定しています。ありがとう。

    (関連:Error with ggplot2 mapping variable to y and using stat="bin"

    +3

    無関係:本当に 'aes()'の中の変数の引用を止める必要があります。 'aes_string'を使っていない限り、あなたはそれをしてはいけません。 – joran

    +0

    @joran:私は 'aes_string'を使用しています、申し訳ありません、私はrpy2を使用していますので、常に' aes_string'です – user248237dfsf

    +0

    不思議に思う読者に。問題は 'aes'と' aes_string'の関係を修正するために編集されました。このエラーは質問の中心ではありませんでした。 – Deleet

    答えて

    10

    stat_densityのデフォルトの美的が..density..あるので、デフォルトでstat_densityを使用していますgeom_densityへの呼び出しは、デフォルトでy = ..density..をプロットします。

    は、さまざまな列が

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

    は、あなたが望むなら、それを無視してお気軽として定義されてsource code

    ..scaled..を見て、caculatedされているかを見ることができます。source code for stat_bin

    結果はあなたが(デフォルトstat = 'bin'を使用して)geom_histogramの結果を比較したいのであれば、あなたはy = ..density..を設定することができ、それがするよう

    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) 
        }) 
    

    のように計算されているを見てみると

    あなたのためにcount/sum(count)を計算してください(ビンの幅を考慮して)

    geom_density(aes(y=..scaled..))とを比較したいと思えば10、あなたはあなたが、しかし、あなたは、曲線の適切な詳細な近似値を得るためにstat_densityadjustパラメータを調整する必要があるだろう、だけでなく、両方で..count..を使用して、同じ規模でそれらを得ることができgeom_histogram(aes(y = ..ndensity..))

    を使用します。

    関連する問題