【问题标题】:Creating a relative frequency histogram and superimposing a normal distribution curve创建相对频率直方图并叠加正态分布曲线
【发布时间】:2019-08-08 03:44:59
【问题描述】:

基本上,我无法绘制相对频率直方图,因为当我绘制数据时,我的 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)

【问题讨论】:

    标签: r histogram normal-distribution


    【解决方案1】:

    您正在寻找密度图,而不是频率图。试试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)
    

    或者你可以做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)
    

    【讨论】:

    • 感谢您的回复,但是当我使用 truehist 尝试“prob = TRUE”时,我的范围仍然是 [0,50000]。
    • 我编辑了我的答案以显示 histtruehist 都使用我提供的数据。 hist 是否给了您预期的结果?你能用prob = TRUE 发布truehist 情节的图片,以便我可以尝试诊断发生了什么吗?
    最近更新 更多