【问题标题】:Draw Radians/Degrees in Circle in R在R中绘制弧度/度数
【发布时间】:2015-05-04 13:52:16
【问题描述】:

我很难生成圆的 X、Y 坐标,然后在其上绘制线段。基本上我想做的是以完美的间距从圆心到圆外绘制 360 条线。这就是我目前的做法,但它不起作用。如果有不同的方法可以做到这一点,那也很好!我也希望 0 度从圆圈的左侧开始。

t <- seq(0,2*pi,length=360) 
coords <- t(rbind( sin(t)*127.28125, cos(t)*127.28125)) 
plot(coords,type='n',xlim=c(-63.625625,63.625625),ylim=c(0,127.28125)) 
lines(coords)

deg=data.frame(coords[,1],coords[,2])
head(deg)
deg$count=1
deg$degree=1

for(i in 1:nrow(coords)){
if(deg$count[i]<=270){
deg$degree[i]=i-1+90-45
} else {
deg$degree[i]=i-1-270-45
}
}

names(deg)[1] <- "X"
names(deg)[2] <- "Y"

i=1
for(i in 1:19){
segments(0,0,deg$X[deg$degree==((5*(i-1)))],deg$Y[deg$degree==((5*(i-1)))])
cat(((5*(i-1))),'\t')
}

更新:

我在绘制线条的位置时遇到了一些问题。基本上,当我们绕着圆圈走时,误差会变大,所以当 pi/2 弧度发生并且它是直线向上时,该值稍微偏右 x=0。这可能无法获得,但我想我会问是否有办法解决这个问题! 45 90 和 135 应该都在行上匹配。

【问题讨论】:

    标签: r plot degrees segments


    【解决方案1】:

    这个怎么样

    th <- seq(0, 2*pi, length.out=360)
    r <- 2
    x <- r*cos(th)
    y <- r*sin(th)
    
    plot(x,y, type="n")
    segments(0,0,x,y)
    

    基本上我在极地空间中选择thr并转换为笛卡尔。

    如果你想从左边的0开始,使用

        x <- -r*cos(th)
    

    改为。

    【讨论】:

    • 感谢您的回复,这与我想要的非常接近,但我在画线的位置上遇到了一些问题。基本上,当我们绕着圆圈走时,误差会变大,所以当 pi/2 弧度发生并且它是直线向上时,该值稍微偏右 x=0。这可能无法获得,但我想我会问是否有办法解决这个问题!
    猜你喜欢
    • 2015-10-26
    • 2021-11-25
    • 2014-08-15
    • 1970-01-01
    • 2012-09-15
    • 1970-01-01
    • 1970-01-01
    • 2016-12-29
    • 1970-01-01
    相关资源
    最近更新 更多