将正态密度曲线叠加到直方图故障(基数r)

wqsoz72f  于 2023-01-28  发布在  其他
关注(0)|答案(1)|浏览(116)

我使用的是R进制,有一个关于正态分布的教学代码,并且已经成功地运行了很多次。
但是现在,当我叠加正态密度曲线时,它似乎不能正常工作。
下面是一个示例代码:

set.seed(100)

data <- rnorm(1000, mean = 0, sd = 1)

hist(data, main = "Normal Distribution", xlab = "X", ylab = "Frequency", col = "444", xlim=c(-4,4))

现在,我尝试使用density()命令在图上叠加密度曲线:

lines(density(data), col = "red", lwd = 2)

如你所见,这条线是平的,我不明白为什么,所以我尝试了另一种方法:

x <- seq(-4, 4, length.out = 100)
lines(x, dnorm(x, mean = 0, sd = 1), col = "red", lwd = 2)

但我得到了相同的结果。
你知道为什么它不能正常工作吗?

clj7thdc

clj7thdc1#

多亏了其中一位用户的评论,我才得到了答案。
使用基数R,hist()函数在默认情况下不会绘制概率函数,而这正是这里所需要的,因此,如果我设置freq=F,代码将工作。
以下是正确答案:

set.seed(100)

data <- rnorm(1000, mean = 0, sd = 1)

hist(data, main = "Normal Distribution", xlab = "X", ylab = "Frequency", col = "444", xlim=c(-4,4), freq = F)

lines(density(data), col ='777', lwd = 2)

相关问题