2013-06-18 13 views
7

Spotkałem dziwny problem, którego nie mogę rozwiązać całkowicie. Powinienem dodać normalną linię dystrybucji na histogramie. Wpisuję kod każdego kroku, ale po wpisaniu funkcji linii nie ma odpowiedzi. Nie wiem, co jest nie tak. Mam nadzieję, że ktoś mi pomoże! Mój kod to:Dodaj normalną linię dystrybucji na histogramie

grades<-mydata$Exam1 
hist(grades,breaks=20,freq=T) #A correct histogram comes out. 
mean(grades,na.rm=T) #there is NA in the column so I remove it when calculating mean. 
[1] 75.15278 

sd(grades,na.rm=T) 
[1] 16.97443 

x<-seq(0,100,0.01) 
y<-dnorm(x,mean=mean(grades,na.rm=T),sd=sd(grades,na.rm=T)) 
lines(x,y)#and there's no response!no line showed up! 

Czy coś jest nie tak z moim kodem? Dzięki za pomoc!

Odpowiedz

19

Przypuszczam, że to kod R - następnie spróbuj tego:

grades <- mydata$Exam1 
hist(grades, prob=TRUE) 
curve(dnorm(x, mean=mean(grades), sd=sd(grades)), add=TRUE) 

Zauważ, że jeśli porównać rozkład normalny na histogramie, prawdopodobnie chcesz wyświetlić histogram do prawdopodobieństwa zamiast częstotliwości.

+1

Dobra uwaga. Lub mógł znormalizować wartości hist $ counts zwracane przez funkcję. –

+0

Widzę, co jest nie tak. Dziękuję bardzo! – zhang525986

4

Chcesz hist(*, freq=FALSE), a nie freq=TRUE.

+0

? co to ma wspólnego z jego obliczeniami "x" i "y"? –

+3

@carlwitthoft Nic. Obliczanie xiy jest w porządku, histogram jest narysowany na niewłaściwej skali, aby pojawiła się gęstość. –

Powiązane problemy