创建相对频率直方图并叠加正态分布曲线

时间:2019-08-08 03:44:59

标签: r histogram normal-distribution

基本上,我在绘制相对频率直方图时遇到了麻烦,因为在绘制数据时,我的y轴始终大于1。我也想将正态分布叠加在顶部,但是似乎永远无法正常工作。

到目前为止我已经制作了:https://imgur.com/H9lWBVg

我在绘制直方图时尝试了多种方法,例如hist()truehist()plot()等。

truehist(aest,freq=TRUE, xlab = "Average Est", col="blue")
curve(dnorm(x,mean(aest),sd(aest)),col="red", add=TRUE, lwd=2)
legend("topright",legend=c(paste("median = ",toString(mean(aest))),paste("mean = ",toString(median(aest))),paste("SD = ",toString(sd(aest)))), cex=0.65)

1 个答案:

答案 0 :(得分:0)

您正在寻找密度图,而不是频率图。尝试hist

freq = FALSE

您将获得所需的结果。我没有您的数据,但将其中包含的一些随机数据扣除后,将像这样:

hist(move$dist,freq=FALSE, xlab = "Average Est", col="blue")
curve(dnorm(x,mean(move$dist),sd(move$dist)),col="red", add=TRUE, lwd=2)
legend("topright",
       legend=c(paste("median = ",toString(mean(move$dist))),
                paste("mean = ",toString(median(move$dist))),
                paste("SD = ",toString(sd(move$dist)))), 
       cex=0.65)

enter image description here

或者您可以执行truehist,但是参数不是freq

prob = TRUE

看起来像这样:

truehist(move$dist,prob = TRUE, xlab = "Average Est", col="blue", nbins = "fd")
curve(dnorm(x,mean(move$dist),sd(move$dist)),col="red", add=TRUE, lwd=2)
legend("topright",
       legend=c(paste("median = ",toString(mean(move$dist))),
                paste("mean = ",toString(median(move$dist))),
                paste("SD = ",toString(sd(move$dist)))), 
       cex=0.65)

enter image description here