我正在玩 R。我尝试使用以下 R 脚本可视化 1000 次掷骰子的分布:
cases <- 1000
min <- 1
max <- 6
x <- as.integer(runif(cases,min,max+1))
mx <- mean(x)
sd <- sd(x)
hist(
x,
xlim=c(min - abs(mx/2),max + abs(mx/2)),
main=paste(cases,"Samples"),
freq = FALSE,
breaks=seq(min,max,1)
)
curve(dnorm(x, mx, sd), add = TRUE, col="blue", lwd = 2)
abline(v = mx, col = "red", lwd = 2)
legend("bottomleft",
legend=c(paste('Mean (', mx, ')')),
col=c('red'), lwd=2, lty=c(1))
谁能给我解释一下为什么第一条这么大?我检查了数据,看起来还不错。我该如何解决这个问题?
提前谢谢你!
最佳答案
直方图不适用于离散数据,它们是为连续数据设计的。您的数据如下所示:
> table(x)
x
1 2 3 4 5 6
174 138 162 178 196 152
即每个值的数量大致相等。但是当你把它放在直方图中时,你选择了 1:6 的断点。第一个柱的左边界有 174 个条目,右边界有 138 个条目,因此显示为 312。
您可以通过在半整数处指定中断来获得更好看的直方图,即 breaks = 0:6 + 0.5
,但对像这样的数据使用直方图仍然没有意义这个。只需运行 plot(table(x))
或 barplot(table(x))
即可更准确地描述数据。
关于r - 为什么我的 R 直方图中的第一个条形图这么大?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43967838/