2016-03-20 16 views
0

Sıcaklık sensöründen gelen bir verim var. Histogramı, üstüne normal bir dağılım bindirmesi ile çizmek istedim. Yerleşimin düz olmamasını beklerdim, ama bir sebepten dolayı düz bir çizgidir. Niye ya?Neden çan eğrisi düz

Bunun bir fikri var çünkü veriler biraz ayrık. Sensör, sıcaklığı yaklaşık olarak kaydeder, bu yüzden 0,2 C'ye kadar yuvarlar. Doğal olarak veri alanının boşlukları vardır. Verilerimin birkaç bin puanı var, ancak unique(temperature$VALUE) yaptığımda - 70 puan aldım. Bu bir sorun olabilir mi? Varsa, R kodumu nasıl düzeltebilirim? Bu doğruysa çok garip şey yapıyorsam özür, stat içinde o kadar iyi değilim

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

açıklayın.

+0

“Dnorm” ın ortalama ve standart sapmasını belirlemelisiniz. Burada $ \ mu = 0 $ ve $ \ sigma = 1 $ için çan eğrisini çizin. Bu, $ 24 $ ile $ 28 $ arasında gerçekten "düz". –

+0

@ StéphaneLaurent Ah, haklısınız. Yanlışlıkla tartışmayı kaldırdım. Lütfen güncellemeye bakın, ekledim. Sonuç hala aynı – Archeg

+1

bakmak [burada] (http://www.cookbook-r.com/Graphs/Plotting_distributions_ (ggplot2) /) veya [burada] (http://www.r-bloggers.com/how to-make-a-histogram-ile-ggplot2 /). “Aes (y = .. density ..)' yi kullanmalısın. Bu, bu arada stackoverflow için bir sorudur. –

cevap

0

Normal yoğunluk işlevi, [0,1] değerine sahiptir. Ve Y ekseniniz aslında bir frekans sayısıdır (200'den fazla).

Aynı ggplot grafiğe 2 Y Ekseni sahip olmak için yöntem yoktur.

Ancak frekansı orantıya çevirmeye çalışabilirsiniz.

+0

Kullanabileceğim herhangi bir R kodu önerebilir misiniz? Konuya oldukça yeniyim ve R'yi çok iyi işlememiyorum – Archeg

+0

@ Archeg frekansını toplam gözlem sayısına bölerek histogramın eğri ile aynı ölçekte olmasına yardımcı olur. – shadowtalker

+0

Teşekkürler. Hepsi doğru, ama bunu elle yapmamayı tercih ediyorum. ** Stéphane Laurent ** yukarıdaki yorumlarda doğru olarak kullanıldığını önerdi: aes (y = .. yoðunluk ..) 'i çalıştıran – Archeg