R:我怎么画一条有多个箭头的线?

Abd*_*del 3 plot r

我想知道是否有人可以帮我在R中用多个箭头绘制线条,如下所示:

---> ---> ---> --->

提前致谢!

bap*_*ste 5

根据对原始问题的澄清,我认为应该考虑一般性答案

  • 计算由(x,y)点指定的断裂曲线的总长度

  • 分开中间段以确保箭头之间的曲线长度相等

  • 处理细微的细节,如初始"阶段",终点,箭头是否应该跟着一个薄的空间,等等.

箭头

下面粗略地抨击它.

arrowLine <- function(x, y, N=10, ...){
  lengths <- c(0, sqrt(diff(x)^2 + diff(y)^2))
  l <- cumsum(lengths)
  tl <- l[length(l)]
  el <- seq(0, to=tl, length=N+1)[-1]

  plot(x, y, t="l", ...)

  for(ii in el){

    int <- findInterval(ii, l)
    xx <- x[int:(int+1)]
    yy <- y[int:(int+1)]

    ## points(xx,yy, col="grey", cex=0.5)

    dx <- diff(xx)
    dy <- diff(yy)
    new.length <- ii - l[int]
    segment.length <- lengths[int+1]

    ratio <- new.length / segment.length

    xend <- x[int] + ratio * dx
    yend <- y[int] + ratio * dy
    points(xend,yend, col="white", pch=19)
    arrows(x[int], y[int], xend, yend, length=0.1)

}

}

set.seed(123)
x = sort(c(0, runif(200, 0,2* pi), 2*pi))
y=sin(x)

arrowLine(x, y, N=20)
Run Code Online (Sandbox Code Playgroud)