【问题标题】:Plotting half circles in R在R中绘制半圆
【发布时间】:2015-10-10 21:02:11
【问题描述】:

我正在尝试使用 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,...) 
} 

但是,由于某种原因,我的半圆最终更像半椭圆。例如,尝试运行:

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')

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

【问题讨论】:

  • 我们想要制作什么样的情节?

标签: r plot geometry


【解决方案1】:

问题是默认纵横比不是 1:1。

要解决此问题,请将 asp=1 设置为 plot

this Q & A 启发。您可以通过打开轴和 x/y 标签来嗅出这种情况。

【讨论】:

    【解决方案2】:

    如果使用 grid 包对你来说也是一个机会,有一个更简单的解决方案:

    library(grid)
    vp <- viewport(width=0.5, height=0.5, clip  = "on")
    grid.circle(0.5,0,r=0.5, gp = gpar(fill = 'red'), vp = vp)
    

    这会创建一个带有裁剪的视口,即填充圆的适当位置会创建一个半圆。

    【讨论】:

      【解决方案3】:

      如果您想将半圆添加到现有绘图中(因此无法直接控制纵横比),那么针对这种特定情况的一种选择是使用 plotrix 包中的 floating.pie 函数。

      创建自定义符号并将它们添加到绘图(符号与整体绘图的纵横比不同)的更通用工具是使用 TeachingDemos 包中的 my.symbols 函数。

      【讨论】:

        猜你喜欢
        • 2016-03-07
        • 1970-01-01
        • 2021-11-21
        • 2021-07-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-21
        相关资源
        最近更新 更多