Наложение нормальной кривой на гистограмму в R



мне удалось найти в интернете, как наложить нормальную кривую гистограммы в R, но я хотел бы сохранить нормальные "частоты" по оси Y гистограммы. См. два сегмента кода ниже, и обратите внимание, как во втором, ось y заменяется на "плотность". Как я могу сохранить эту ось y как "частоту", как это показано на первом графике.



В КАЧЕСТВЕ БОНУСА: Я хотел бы отметить области SD (до 3 SD) на кривой плотности, а также. Как я могу это сделать? Я пытался abline, но линия простирается до верхней части графика и выглядит некрасиво.



g = d$mydata
hist(g)


enter image description here



g = d$mydata
m<-mean(g)
std<-sqrt(var(g))
hist(g, density=20, breaks=20, prob=TRUE,
xlab="x-variable", ylim=c(0, 2),
main="normal curve over histogram")
curve(dnorm(x, mean=m, sd=std),
col="darkblue", lwd=2, add=TRUE, yaxt="n")


enter image description here



смотрите, как на изображении выше, ось y - это "плотность". Я бы хотел, чтобы это была "частота".

725   2  

2 ответов:

вот хороший простой способ, который я нашел:

h <- hist(g, breaks = 10, density = 10,
          col = "lightgray", xlab = "Accuracy", main = "Overall") 
xfit <- seq(min(g), max(g), length = 40) 
yfit <- dnorm(xfit, mean = mean(g), sd = sd(g)) 
yfit <- yfit * diff(h$mids[1:2]) * length(g) 

lines(xfit, yfit, col = "black", lwd = 2)

вам просто нужно найти правильный множитель, который можно легко вычислить из

Comments

    Ничего не найдено.