2013-06-18 30 views
7

我遇到了一個奇怪的問題,我無法完全弄清楚。 我應該在直方圖上添加一個正態分佈線。我輸入每一步的代碼,但在輸入直線函數後沒有任何反應。我不知道什麼是錯。希望有人幫助我! 我的代碼是:在直方圖中添加一條正常分佈線

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! 

我的代碼有什麼問題嗎? 感謝您的幫助!

回答

19

我以爲這是R代碼裏面 - 那麼試試這個:

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

請注意,如果您正態分佈比較柱狀圖,你可能想直方圖顯示的概率,而不是頻率。

+1

好點。或者他可以規範化函數返回的hist計數值。 –

+0

我明白了什麼是錯的,非常感謝你! – zhang525986

4

你想要hist(*, freq=FALSE)而不是freq=TRUE

+0

?這與他計算'x'和'y'有什麼關係? –

+3

@carlwitthoft沒什麼。 x和y的計算很好,直方圖繪製在密度出現的錯誤標度上。 –