2016-08-25 46 views
2

我想在ggplot2中製作我自己的直方圖,其中我向ggplot2提供了矢量中每個參數值的值的概率,而不是從一個矢量中計算概率值本身單個矢量。用預定義的概率值在ggplot2中的直方圖

玩具數據:

這是在參數值

p <- seq(from = 0.05, to = 0.95, by = 0.1) 

我分配這些權重的

prior <- c(1, 5.2, 8, 7.2, 4.6, 2.1, 0.7, 0.1, 0, 0) 

然後計算每個這些權重的一個先驗概率

prior <- prior/sum(prior) 

現在使用plot()功能,我們可以創建一個使用這兩個向量

plot(p, prior, "h", ylab = "prior probability") 

但我怎麼能得到GGPLOT2類似圖中的直方圖?

如果我嘗試把這些成數據幀

gDF <- data.frame(p = p, priorProb = prior) 

然後繪圖它

ggplot(gDF, aes(x = p, y = priorProb)) + geom_histogram() 

我得到的錯誤Error: stat_bin() must not be used with a y aesthetic,這是有道理的,因爲通常一個直方圖ggplot只使用一個單一的載體。

任何幫助appeciated。

回答

2
ggplot(gDF, aes(x = p, y = priorProb)) + geom_bar(stat = "identity") 

Looks

+0

是啊。非常明顯。僵硬地思考着我。我想你可以在'geom_bar()'中使用'width = 0.01'參數來使條看起來更像是'plot(「h」)'函數中的直方圖條。謝謝@Nathan Day。 – llewmills