如何使用ggplot绘制概率密度?
我正在寻找 ggplot 方法来绘制概率密度函数(或任何函数)。我曾经使用 R 中旧的 plot()
函数来执行此操作。例如,要使用 alpha=1
和 beta=1
(均匀)绘制 beta 分布:
x <- seq(0,1,length=100)
db <- dbeta(x, 1, 1)
plot(x, db, type='l')
如何在 ggplot 中做到这一点?
I am looking for the ggplot way to plot a probability density function (or any function). I used to use the old plot()
function in R to do this. For example, to plot a beta distribution with alpha=1
and beta=1
(uniform):
x <- seq(0,1,length=100)
db <- dbeta(x, 1, 1)
plot(x, db, type='l')
How can I do it in ggplot?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
ggplot2 有一个
stat_function()
函数,可以将函数叠加到绘图上,其方式与curve()
的方式大致相同。我在不生成数据的情况下花了一些功夫让它工作,直到我意识到如何使用统计数据生成的变量 --- 这里..y..
。以下内容类似于使用curve(dbeta(x, shape1 = 2, shape2 = 2), col = "red")
得到的结果:ggplot2 has a
stat_function()
function to superimpose a function on a plot in much the same way ascurve()
does. I struggled a little bit to get this to work without generating the data until I realised how to use the variables produced by the statistic --- here..y..
. The following is similar to what you would get withcurve(dbeta(x, shape1 = 2, shape2 = 2), col = "red")
:您可以使用 ggplot2 中的 qplot 函数来制作快速绘图
,也可以将 geom_line 图层添加到 ggplot
You can use the qplot function within ggplot2 to make a quick plot
or you can add a geom_line layer to a ggplot