2017-07-19 81 views
1

我在R中有一個我試圖在ggplot2中複製的情節。我有以下代碼:如何繪製ggplot2中的Gamma分佈

theta = seq(0,1,length=500) 
post <- dgamma(theta,0.5, 1) 
plot(theta, post, type = "l", xlab = expression(theta), ylab="density", lty=1, lwd=3) 

enter image description here

我試圖複製在GGPLOT2該地塊,這是我能得到的最接近。

df=data_frame(post,theta) 
ggplot(data=df,aes(x=theta))+ 
    stat_function(fun=dgamma, args=list(shape=1, scale=.5)) 

enter image description here

回答

4

你沒有正確地匹配您的參數。的dgamma簽名是

dgamma(x, shape, rate = 1, scale = 1/rate, log = FALSE) 

所以當你打電話

dgamma(theta, 0.5, 1) 

dgamma(theta, shape=0.5, rate=1) 

這意味着你會翻譯ggplot作爲

ggplot(data=df,aes(x=theta))+ 
    stat_function(fun=dgamma, args=list(shape=0.5, rate=1)) 

ÿ如果你喜歡scale_y_continuous(limits=c(0,12))或類似的東西,你也可以調整y值。

+0

感謝您的幫助! – Alex