R 如何使用ggplot绘制概率密度?
我正在寻找绘制概率密度函数(或任何函数)的ggplot方法。我以前在R中使用了旧的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()的方式大致相同。在没有生成数据的情况下,我费了一点劲才让它起作用,直到我意识到如何使用统计数据生成
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