用R生成特定图形

用R生成特定图形,r,graph,R,Graph,借助蒙特卡罗方法,我需要确定Pi的值。 到目前为止,我有一个代码,它通过0.1到1之间的圆半径的随机值给出Pi。接下来,我要做的是绘制变量半径与Pi的数值,正如我试图在下面描述的那样 | Pi|~~~~~~~~~~~~ <- values | |______________ 0.1 R 1 有了这段代码,我可以在整个图中得到1点。我想要的是在图表上有100个点。所以“很容易”说,让代码通过不同的R确定100个pi值

借助蒙特卡罗方法,我需要确定Pi的值。 到目前为止,我有一个代码,它通过0.1到1之间的圆半径的随机值给出Pi。接下来,我要做的是绘制变量半径与Pi的数值,正如我试图在下面描述的那样

     |
   Pi|~~~~~~~~~~~~    <- values
     |
     |______________  
     0.1     R      1
有了这段代码,我可以在整个图中得到1点。我想要的是在图表上有100个点。所以“很容易”说,让代码通过不同的R确定100个pi值,并将它们绘制在一个图中。
这可能吗?我已经寻找答案两天了,但到目前为止没有任何进展。。谢谢

把计算变成一个函数,然后运行一百次怎么样?一旦获得了这些值,就可以将它们全部绘制在一起。同样的事情也可以使用for循环来完成

这里有一个例子。让我们先创建一个函数ppi:

ppi<-function(N=1000) {
    n = N
    z = runif(1, 0.1, 1)
    R= z
    x = runif(n, -R, R)
    y = runif(n, -R, R)
    pin = sum(ifelse(sqrt(x^2 + y^2 <= R^2), 1, 0))
    return(c(z, n, pin))
}
然后,您可以运行100次see replicate,然后使用一些绘图功能绘制结果

ppi<-function(N=1000) {
    n = N
    z = runif(1, 0.1, 1)
    R= z
    x = runif(n, -R, R)
    y = runif(n, -R, R)
    pin = sum(ifelse(sqrt(x^2 + y^2 <= R^2), 1, 0))
    return(c(z, n, pin))
}