我尝试在stat_function()
中通过ggplot
添加一个函数,但无法弄清楚我的错误。这个例子产生了一个漂亮的情节:
data <- data.frame(x=rt(10000, df=7))
ggplot(data=data, aes(x=x)) + geom_histogram(aes(y = ..density..)) +
stat_function(fun =dnorm, size=1, color='gray', args=list()) +
opts(title="Histogram of interest rate changes") + theme_bw()
但是当我尝试叠加对数正常密度时,这不会按预期工作(或者我应该按预期说这不起作用;):
data <- data.frame(x=rf(10000, df1=7, df2=120))
ggplot(data=data, aes(x=x)) + geom_histogram(aes(y = ..density..)) +
stat_function(fun =dnorm, size=1, color='gray', args=list(log=TRUE)) +
opts(title="Histogram of interest rate changes") + theme_bw()
所以这是我希望简单的问题:我在这里做错了什么?我想这是一个非常简单的问题我只是没有看到答案 - 抱歉。
答案 0 :(得分:7)
使用dlnorm
,对数正态分布的密度函数:
ggplot(data=data, aes(x=x)) + geom_histogram(aes(y = ..density..)) +
stat_function(fun = dlnorm, size=1, color='gray') +
opts(title="Histogram of interest rate changes") + theme_bw()