2016-08-25 93 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