3
我試圖繪製R中的直方圖並用不同分佈的密度疊加它。它對於常規直方圖運行良好,但我無法使它與ggplot2包配合使用。用ggplot繪製直方圖上的不同分佈
a <- dataset$age
現在遵循我經常直方圖代碼:
Histogram_for_age <- hist(a, prob=T, xlim=c(0,80), ylim=c(0,0.055), main="Histogram for age with density lines", xlab="age")
mean <- mean(a)
sd <- sd(a)
而且現在的行/爲密度曲線:
lines(density(dataset$age), col="blue", lwd=2, lty=1)
curve(dnorm(x, mean = mean, sd = sd), add = T, col="red", lwd=2, lty=2)
curve(dgamma(x, shape =mean^2/sd^2, scale = sd^2/mean), add = T, col="goldenrod", lwd=2, lty=3)
和一個傳說:
legend("topright",
c("actual distribution of age","gaussian distribution", "gamma distribution"),
lty=c(1,2,3),
lwd=c(2,2,2),col=c("blue","red","goldenrod"), cex=0.65)
這是我用gg試過的plot2到目前爲止:
ggplot(dataset, aes(x=age)) +
geom_histogram(aes(y=..density..),
colour="black", fill="white") +
geom_density(alpha=.2, fill="lightblue") + stat_function(fun = dgamma, shape=shape)
什麼ggplot2參數等同於我的lines()和curve()參數?
謝謝你的快速反應!我在上面關於伽馬規格的形狀參數中使用了什麼? – Cajira
您可能必須添加'geom =「point」',然後定義形狀。你可以提供一些[示例數據](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)?這使我更容易給出適當的答案。 – Jaap
@ Cajira可能是指函數'dgamma'中的'shape'參數。你應該添加'arg = list(shape = ...)'調用'stat_function()' – ilir