0
我有数据为(ur_memr_t $ up ...)制作了直方图。然后,我使用fitdistr来拟合数据的指数分布。我捕获了拟合分布的参数并生成了一些随机变量。然后我为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()
seperately,他们产生正确的地块。为什么他们不能一起工作,并将其中一个放在另一个之上?
如果你创建了一个[重复的例子(这将是有益http://stackoverflow.com/questions/5963269/how-to-make-a -great-R再现的-例子)。由于我们无法访问'um_memr_t',因此我们无法运行您的代码。你不能添加两个'ggplot'对象。通常,您只需添加具有不同数据源和映射的新图层。像'ggplot()+ geom_histogram(data = ur_memr_t,aes(updated_days_to_next_ur,..density ..))+ geom_density(data = exp_data,aes(x),color =“red”)''应该是相近的。请注意,计数和密度在不同的比例 – MrFlick
也经常询问这个问题。我建议寻找类似的答案:http://stackoverflow.com/questions/5688082/ggplot2-overlay-histogram-with-density-curve – MrFlick