我想画一个像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")
它正在生成如下的圈子:。
我的命令中的故障在哪里?命令也产生警告
Warning message:
In sqrt(25 - (x - 2)^2) : NaNs produced
我知道R中有一个函数draw.circle
但我想识别我的代码故障。
答案 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)