在R中绘制半圆

sou*_*alo 7 plot geometry r

我试图用R绘制半圆.我的最终目的是绘制一个圆圈,在中间用颜色划分.我发现的唯一方法是绘制两个不同颜色的半圆.
所以我创建了自己的函数:

upper.half.circle <- function(x,y,r,nsteps=100,...){  
  rs <- seq(0,pi,len=nsteps) 
  xc <- x+r*cos(rs) 
  yc <- y+r*sin(rs) 
  polygon(xc,yc,...) 
} 

lower.half.circle <- function(x,y,r,nsteps=100,...){ 
  rs <- seq(0,pi,len=nsteps) 
  xc <- x-r*cos(rs) 
  yc <- y-r*sin(rs) 
  polygon(xc,yc,...) 
} 
Run Code Online (Sandbox Code Playgroud)

但是,出于某种原因,我的半圈更像是半椭圆.例如,尝试运行:

plot(1, type="n",axes=F,xlab="", ylab="",xlim=c(0,200),ylim=c(0,200))
upper.half.circle(15,170,10,nsteps=1000,col='red')
Run Code Online (Sandbox Code Playgroud)

有谁知道我为什么遇到这个麻烦,或者知道一个更好的方法来做我想做的事情?
谢谢!

Mic*_*ico 6

问题是默认宽高比不是1:1.

为了解决这个问题,设置asp=1plot:

固定圈

灵感来自这个问答.你可以通过打开轴和x/y标签来嗅出这种情况.