Не знаком с этой командой от 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")
Создано в 2018-08-27 пакетом Представ (v0.2.0).