【问题标题】:My normal curve does not plot correctly with histogram [duplicate]我的正态曲线无法正确绘制直方图 [重复]
【发布时间】:2020-02-20 00:05:16
【问题描述】:

所以我已经绘制了直方图和正常曲线,但是曲线看起来比直方图小得多。我做错了什么,它比它应该的小得多?

正如您在我的代码中看到的那样,我绘制了直方图并尝试了两种绘制正态曲线的方法。我已经计算了数据集的标准差和平均值,所以我只使用了实际数字。线条确实会绘制,只是远低于应有的水平。

g = read.csv("C:/Users/emkat/Documents/decave.txt",header=FALSE)

g

m <- lapply(g,mean)

std <- sqrt(var(g))

hist(g[,1],plot = TRUE)
x <- g[,1]

y <- dnorm(x,mean = 26.59138,sd = 5.046878)

curve(dnorm(x,mean = 26.59138,sd = 5.046878),col="darkblue",lwd=2,add = TRUE)

lines(density(g[,1]),col="blue")

【问题讨论】:

    标签: r histogram


    【解决方案1】:

    直方图的 Y 轴显示每个 bin 中项目的频率。频率可以取任何值(甚至超过一个)。但是,如果您必须将直方图 Y 轴与概率密度轴匹配,则必须添加“freq=FALSE”参数。

    例如在下面的代码中,我使用了汽车数据集来演示使用命名参数“freq=”的效果。

    data_1 <- cars
    
    ## These settings are for plotting two curves side by side
    par(mfrow=c(1,2))
    ## Without freq = FALSE
    hist(data_1$dist,plot=TRUE,freq=TRUE)
    lines(density(data_1$dist),col="red")
    
    ## With freq = FALSE
    hist(data_1$dist,plot=TRUE,freq=FALSE)
    lines(density(data_1$dist),col="blue")
    

    生成的图像如下。左边是红色的密度曲线,它是平坦的,因为直方图的 Y 轴(大于 15)太大而无法显示概率密度。右侧是可见的蓝色曲线(由于“freq=FALSE”选项)。

    我希望这会有所帮助。如果问题仍然存在,请告诉我们。

    【讨论】:

    • 谢谢!这解决了我的问题,我的图表现在看起来正确。
    猜你喜欢
    • 2019-11-04
    • 1970-01-01
    • 2018-09-06
    • 1970-01-01
    • 1970-01-01
    • 2016-03-30
    • 2016-01-10
    • 2011-10-21
    • 2016-09-16
    相关资源
    最近更新 更多