gpt4 book ai didi

r - 在 R 中绘制圆圈

转载 作者:行者123 更新时间:2023-12-04 01:17:55 25 4
gpt4 key购买 nike

我不知道为什么下面的代码没有给我完整的圆圈而只给出了它的一部分。此外,我不知道如何在以 (0,0) 为中心且 r=1 和 a=2 的正方形内在圆上或圆外显示我的点。

library("plotrix")
n<-1000
plot.new()
frame()
x<-runif(n,-1,1)
y<-runif(n,-1,1)
for (i in 1:n) { plot(x[i],y[i])}
draw.circle(0,0,1,nv=1000,border=NULL,col=NA,lty=1,lwd=1)

这是输出 enter image description here

所以我将它固定为以下,当我有 100 点时,图表看起来如下。为什么不显示完整的圆圈?
plot(x,y)
draw.circle(0,0,1,nv=1000,border=NULL,col=NA,lty=1,lwd=1)

enter image description here

所以多亏了费尔南多,我修复了情节,现在它看起来像这样,但我希望 x 的范围从(-1 到 1),就像 y 一样。 xlim 没有用。你知道怎么回事吗?
magnitude = function(x, y) {
stopifnot(isTRUE(all.equal(length(x),length(y))))
return (sqrt(x^2 + y^2))
}
library("plotrix")
monte.carlo.pi<-function(n,draw=FALSE)
{
circle.points<-0
square.points<-0
x<-runif(n,-1,1)
y<-runif(n,-1,1)
for (i in 1:n)
{
#if ((x[i])^2 + (y[i])^2 <=1)
if (magnitude(x[i],y[i])<=1)
{
circle.points<-circle.points+1
square.points<-square.points+1
} else
{
square.points<-square.points+1
}
}
if (draw==TRUE)
{
plot.new()
frame()
plot(x,y,asp=1,xlim=c(-1,1),ylim=c(-1,1))
draw.circle(0,0,1,nv=1000,border=NULL,col=NA,lty=1,lwd=1)
rect(-1,-1,1,1)
return(4*circle.points / square.points)
}
}

并调用如下函数:
monte.carlo.pi(100,T)

当前情节如下:
enter image description here

最佳答案

如果您希望圆圈对用户来说实际上看起来像一个圆圈,Fernando 的回答很好。这个答案涵盖了在数据维度中绘制一个圆圈。

如果您的 x 和 y 轴缩放相同,例如,
如果您将纵横比设置为 1 ( asp = 1 ),则这两种方法是等效的。

# initialize a plot
plot(c(-1, 1), c(-1, 1), type = "n")

# prepare "circle data"
radius = 1
center_x = 0
center_y = 0
theta = seq(0, 2 * pi, length = 200) # angles for drawing points around the circle

# draw the circle
lines(x = radius * cos(theta) + center_x, y = radius * sin(theta) + center_y)

关于r - 在 R 中绘制圆圈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22265704/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com