没有数据的直方图

时间:2017-09-15 06:28:13

标签: r histogram

我想创建一个正态分布的直方图。我所知道的是,我有 120名学生,可以在考试中达到从0到70分。如何绘制这样的直方图?

1 个答案:

答案 0 :(得分:1)

基本上你在谈论截断分发。有关详细信息,建议您阅读thisthisthis

要回答你的问题,这就是你需要做的事情(我给出了任意选择的均值和标准差。Reference manual说如果没有指定均值或标准差,则该函数假设默认值为0和1,分别),

install.packages("truncnorm")
library(truncnorm)

grades <- rtruncnorm(120, a=0, b=70, mean=68, sd=2)
hist(grades)

如果要在正态分布后生成一组随机整数,可以对它们进行舍入。或者,在大n的情况下,您可以近似正态分布到二项分布,这是观察的数量。 This回答了这个问题。

编辑:

set.seed(123)
df <- data.frame(grades = rtruncnorm(120, a=0, b=70, mean=35, sd=5))

ggplot(df, aes(grades)) +
  geom_histogram(aes(y = ..density..)) +
  stat_function(fun = dnorm, 
                args = list(mean = mean(df$grades), sd = sd(df$grades)), 
                lwd = 2, 
                col = 'red')

enter image description here