2016-04-20 12 views
2

私の基本的な質問は、geom_densityのビン番号(デフォルトは30)を設定する方法です。ggplot:密度プロットのユーザー定義のビン番号について混乱する

y軸の密度は、ビンが変更されても変化しないことがわかりました。ビン番号がしかし、結果は私が期待したものは認められなかった1に定義されたので、

values <- runif(1000, 1, 100) 
ind <- as.factor(rep(c(1:2), each=500)) 
inout <- as.factor(rep(c(1:2), each =500)) 
df <- data.frame(values,ind,inout) 

ggplot(df,aes(x=values, ..density..)) + 
    geom_freqpoly(aes(group=interaction(ind,inout), colour=factor(inout)), alpha=1, bins=1) 

密度のあるべき1:ここでは

は一例です。

ここで私が迷っていることを知っていますか? ggplot geom_densityのbin numberまたはbinのしきい値を定義するためのヒント?

ありがとうございます。

+0

' 'bins = 1'の前に。 – bVa

+0

"、"が削除されました。ありがとう。 –

答えて

0

ggplotでは、ビン自体の数を設定しないで、代わりにbinwidth(デフォルトは範囲/ 30)を使用してビンの幅を設定します。 binは、geom_freqpolyが理解できる用語ではないため、サンプルコードでは無視されます。これはあなたのコードが

を生成したものと同様のグラフを与える

values <- runif(1000, 0, 1) # generate values between 0 and 1 
ind <- as.factor(rep(c(1:2), each=500)) 
inout <- as.factor(rep(c(1:2), each =500)) 
df <- data.frame(values,ind,inout) 

ggplot(df, aes(x=values, ..density..)) + 
    geom_freqpoly(aes(group=interaction(ind,inout), 
         colour=factor(inout)), alpha=1) #use default binwidth, i.e. 1/30 

は、私はより良いあなたが見て期待していたものを説明します範囲0-1(代わりに1-100の)使用例を考えます binwidth = 1設定1の範囲で

geom_freqpoly with default binwidth

は、0.5の値に1の密度を与える1つのビンが存在することになることを意味します。あなたは、ランダムに生成ポイントの数を増やし、ビン幅を小さくした場合、今の値の範囲は、濃度曲線下面積として0.5〜1.5をある注意事項は常に1

ggplot(df, aes(x=values, ..density..)) + 
    geom_freqpoly(aes(group=interaction(ind,inout), 
         colour=factor(inout)), alpha=1, binwidth = 1) #binwidth = 1 

geom_freqpoly with binwidth set to 1

に合計しなければなりません(例えば、0.1,0.01、0.001などを試してみてください)均一分布に期待される "正方形の見え方"の確率密度関数に近づくでしょう(as shown on wikipedia

関連する問題