绘制圆

Plotting circle

我想像this一样画一个圆。

圆的方程为:(x-4)^2+(y-2)^2=25

所以我使用 curve 命令写下了 R 代码。但它并没有准确地画出圆圈。

 curve(4-sqrt(25-(x-2)^2),xlim=c(-4,10),ylim=c(-4,10))

 curve(4+sqrt(25-(x-2)^2),add=TRUE,col="red")

它正在生成如下圆圈:

我的命令中 is/are 错误在哪里?这些命令也会产生警告

 Warning message:
 In sqrt(25 - (x - 2)^2) : NaNs produced

我知道 R 中有一个函数 draw.circle

但我想找出我的代码错误。

警告消息来自于您尝试取 sqrt() 个负数这一事实。可以通过增加数据点来绘制圆。:

N<-10000
curve(4-sqrt(25-(x-2)^2),xlim=c(-4,10),ylim=c(-4,10),n=N)
curve(4+sqrt(25-(x-2)^2),add=TRUE,col="red",n=N)

当然,您通常应该使用 fromto 的参数来控制 Ben 指出的数据点的计算:

curve(4-sqrt(25-(x-2)^2),xlim=c(-4,10),ylim=c(-4,10),from=-3,to=7,n=N)
curve(4+sqrt(25-(x-2)^2),add=TRUE,col="red",from=-3,to=7,n=N) 

另请注意,您绘制的是 (y,x) 而不是通常的 (x,y)。从评论来看,你似乎想要:

curve(2-sqrt(25-(x-4)^2),xlim=c(-4,10),ylim=c(-4,10),from=-1,to=9,n=N)
curve(2+sqrt(25-(x-4)^2),add=TRUE,col="red",from=-1,to=9,n=N)