在数据直方图上叠加指数密度

时间:2016-02-16 21:31:09

标签: r ggplot2

我有数据,我为(ur_memr_t $ up ...)做了直方图。然后我使用fitdistr来拟合数据的指数dist。我捕获了拟合分布的参数并生成了一些随机变量。然后我为exp随机变量制作了密度曲线。我想将密度放在直方图上。以下代码抛出此错误

  exp_data <- data.frame( x = rexp(3000, rate = 0.0144896182))

  ggplot(data = ur_memr_t, aes(ur_memr_t$updated_days_to_next_ur)) + 
  geom_histogram() + ggplot(exp_data, aes(x)) + geom_density()

Error in p + o : non-numeric argument to binary operator
In addition: Warning message:
Incompatible methods ("+.gg", "Ops.data.frame") for "+"

如果我跑

  ggplot(data = ur_memr_t, aes(ur_memr_t$updated_days_to_next_ur)) + 
  geom_histogram()

  ggplot(exp_data, aes(x)) + geom_density()

单独地,他们产生正确的情节。为什么他们不能一起工作并在另一个上面绘制一个?

1 个答案:

答案 0 :(得分:0)

我认为它应该可以工作,但你只能有一个ggplot语句。尝试这样的事情:

g = ggplot(data = ur_memr_t, aes(ur_memr_t$updated_days_to_next_ur)) 
g = g + geom_histogram(aes(ur_memr_t$updated_days_to_next_ur))
g = g + geom_density(data = exp_data, aes(x)) 

希望有所帮助