R语言直方图叠加正态分布曲线无输出无报错问题求助
错误原因
- 函数使用错误:叠加正态分布密度曲线需要调用密度函数
dnorm(),而非随机数生成函数rnorm(),rnorm()输出的是随机采样值,无法生成连续的密度曲线。 - 参数与范围不匹配:你写的
rnorm(x, 1000)会将正态分布的均值设为1000,而你最初生成的rnorm(1000)默认均值为0、标准差为1,直方图的x轴范围集中在-3~3区间,均值为1000的曲线完全在画布可视范围之外,因此不会显示也不会触发语法报错。
修正后的完整代码
# 先存储随机样本,避免两次生成数据不一致 sample_data <- rnorm(1000) # 绘制概率直方图 hist(sample_data, prob = TRUE) # 叠加匹配样本参数的正态分布曲线,col设置曲线颜色,lwd设置曲线粗细 curve(dnorm(x, mean = mean(sample_data), sd = sd(sample_data)), add = TRUE, col = "red", lwd = 2)
补充说明
如果需要手动指定曲线绘制范围,只要范围和你的样本分布区间匹配即可,上述默认参数生成的样本大多分布在-4到4之间,也可以手动指定范围写法为:curve(dnorm(x, mean = 0, sd = 1), from = -4, to = 4, add = TRUE)
内容的提问来源于stack exchange,提问作者Grayce Proulx
相关产品推荐
相关产品推荐

