2016-03-20 3 views
0

温度センサーからのデータがあります。私は上に正規分布オーバレイを持つヒストグラムをプロットしたいと思っていました。私はオーバーレイがフラットではないと思っていますが、何らかの理由でフラットラインです。どうして?私のベルカーブがフラットな理由

これはデータがやや離散しているためです。センサーは温度を約登録するので、最大で0.2Cに丸めます。当然、データドメインにはスペースがあります。私のデータは数千点ありますが、私が行うときunique(temperature$VALUE) - 私は70点を受け取ります。これが問題なのでしょうか?はいの場合、Rコードを修正するにはどうしたらいいですか?それが本当ならば、私は非常に奇妙な何かをやっている場合、私はとても残念、STATでその苦手

ggplot(temperature, aes(VALUE)) + geom_histogram(binwidth = 0.05) + 
    stat_function(geom="line", fun=dnorm, lwd = 1, colour="red", args=list(mean = mean(temperature$VALUE), sd = sd(temperature$VALUE))) 

enter image description here

は、説明してください。

+0

'dnorm'の平均と標準偏差を指定する必要があります。ここで$ \ mu = 0 $と$ \ sigma = 1 $のベルカーブを描きます。これは実際には$ 24 $〜$ 28 $の間に "フラット"です。 –

+0

@StéphaneLaurentああ、そうです。私は間違いなく引数を削除しました。アップデートを参照してください、私はそれを追加しました。結果はまだ同じです – Archeg

+1

見て[ここ](http://www.cookbook-r.com/Graphs/Plotting_distributions_(ggplot2)/)または[ここ](http://www.r-bloggers.com/how -g-make-a-histogram-with-ggplot2 /)を使用します。あなたは 'aes(y = .. density ..)'を使う必要があります。これは途中でスタックオーバーフローの問題です。 –

答えて

0

標準密度関数の値の範囲は[0,1]です。あなたのY軸は実際には周波数のカウントです(200以上)。

同じggplotグラフに2つのY軸を持つ方法はありません。

しかし、頻度を割合に変換しようとすることができます。

+0

私は使用できる任意のコードを提案できますか?私は話題にはかなり新しいので、Rをうまく操作しないでください。 – Archeg

+0

@Archegの頻度を観測数の合計で割ると、ヒストグラムを曲線と同じスケールにするのに役立ちます。 – shadowtalker

+0

ありがとうございます。それはすべて真実ですが、私はそれを手動でしない方がよいです。 **StéphaneLaurent **は上記のコメントの中で正しく働いた 'aes(y = .. density ..) 'を使うことを提案しました – Archeg

関連する問題