绘制圆圈

时间:2015-01-03 14:11:04

标签: r

我想画一个像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")

它正在生成如下的圈子:enter image description here

我的命令中的故障在哪里?命令也产生警告

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

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

但我想识别我的代码故障。

1 个答案:

答案 0 :(得分:4)

警告消息来自您尝试取消{number}的负数这一事实。可以通过增加数据点来绘制圆圈。:

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) from的参数来控制Ben指出的数据点的计算:

to

还注意到你正在绘制(y,x)而不是通常的(x,y)。从评论来看,似乎你想要:

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) 
相关问题