如何使用ggplot绘制概率密度?

时间:2010-10-08 18:49:33

标签: r ggplot2

我正在寻找绘制概率密度函数(或任何函数)的ggplot方法。我曾经使用R中的旧plot()函数来执行此操作。例如,要使用alpha=1beta=1(统一)绘制beta分布:

x <- seq(0,1,length=100)
db <- dbeta(x, 1, 1)
plot(x, db, type='l')

我怎么能在ggplot中做到这一点?

2 个答案:

答案 0 :(得分:6)

library(ggplot2)
x <- seq(0,1,length=100)
db <- dbeta(x, 1, 1)

您可以使用ggplot2中的qplot函数快速绘制

qplot(x, db, geom="line")

或者您可以将geom_line图层添加到ggplot

ggplot() + geom_line(aes(x,db))

答案 1 :(得分:6)

ggplot2有一个stat_function()函数,可以在一个图上叠加一个函数,就像curve()一样。在我意识到如何使用统计数据产生的变量--- ..y..之前,我努力工作而不生成数据。以下内容与curve(dbeta(x, shape1 = 2, shape2 = 2), col = "red")

相似
require(ggplot2)
x <- seq(0, 1, len = 100)
p <- qplot(x, geom = "blank")
stat <- stat_function(aes(x = x, y = ..y..), fun = dbeta, colour="red", n = 100,
                      args = list(shape1 = 2, shape2 = 2))
p + stat