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