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

R 如何使用ggplot绘制概率密度?,r,ggplot2,R,Ggplot2,我正在寻找绘制概率密度函数(或任何函数)的ggplot方法。我以前在R中使用了旧的plot()函数来实现这一点。例如,要使用alpha=1和beta=1绘制beta分布(统一): x 或者,您可以将几何图形图层添加到ggplot ggplot() + geom_line(aes(x,db)) ggplot2有一个stat\u function()函数,用于将函数叠加到绘图上,其方式与curve()的方式大致相同。在没有生成数据的情况下,我费了一点劲才让它起作用,直到我意识到如何使用统计数据生成

我正在寻找绘制概率密度函数(或任何函数)的ggplot方法。我以前在R中使用了旧的
plot()
函数来实现这一点。例如,要使用
alpha=1
beta=1
绘制beta分布(统一):

x
或者,您可以将几何图形图层添加到ggplot

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

ggplot2有一个
stat\u function()
函数,用于将函数叠加到绘图上,其方式与
curve()
的方式大致相同。在没有生成数据的情况下,我费了一点劲才让它起作用,直到我意识到如何使用统计数据生成的变量——这里是
.y..
。以下内容类似于使用
曲线(dbeta(x,shape1=2,shape2=2),col=“red”)

require(ggplot2)

答案的第一行中的x是指
require(ggplot2)
还是
library(ggplot2)
?此代码现在给出错误
error:美学长度必须为1或与数据相同(1):x运行`rlang::last_error()`以查看错误发生的位置@kjetilbhalvorsen哦,对了;我记得最近有人(克劳斯·威尔克?)在做
stat\u function()。当我回到一台合适的电脑前,我会看看并更新这个。
library(ggplot2)
x <- seq(0,1,length=100)
db <- dbeta(x, 1, 1)
qplot(x, db, geom="line")
ggplot() + geom_line(aes(x,db))
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