我正在尝试复制历史正常百分比。问题在于密度图(或正态分布)完全不可用:
library(scales)
library(ggplot2)
a <- data.frame(rnorm(100,0,1))
colnames(a) <- c("test")
ggplot(a,aes(test)) +
geom_histogram(aes(y=(..count..)/sum(..count..))) +
scale_y_continuous(labels=scales::percent) +
stat_function(fun='dnorm')
这条线应该更接近图形,但它的缩放比例约为10。
答案 0 :(得分:3)
不熟悉Stata的命令,但这是您想要的吗?缩放棒高的密度,使总面积积分为1,就像显示的法线一样。您的尝试不起作用的原因是,您没有考虑垃圾箱的宽度。每个垃圾箱的宽度面积乘以计数。如果您设置箱宽,则可以手动执行此操作,也可以只使用计算出的..density..
变量。
library(ggplot2)
set.seed(12345)
a <- data.frame(test = rnorm(100, 0, 1))
ggplot(a, aes(x = test)) +
geom_histogram(aes(y = ..count.. / (sum(..count..) * 0.2)), binwidth = 0.2) +
scale_y_continuous(labels = scales::percent) +
stat_function(fun = "dnorm")
ggplot(a, aes(x = test)) +
geom_histogram(aes(y = ..density..), binwidth = 0.2) +
scale_y_continuous(labels = scales::percent) +
stat_function(fun = "dnorm")
由reprex package(v0.2.0)于2018-08-27创建。