Построение прогрессивной двухточечной прогулки в R

Как я могу построить прогрессивную прогулку от точки к точке?

Пусть p1 =[1,0], p2=[0,1], p3=[1,1]. Участок должен сначала нарисовать линию от p1 до p2, показывающую направление, подождать секунду, затем нарисовать еще одну линию от p2 до p3, и она продолжится, если у вас будет больше данных.

Размер графика сначала должен быть зафиксирован на (0,1)^2. Правильный вывод должен выглядеть примерно так:

Мой код это сейчас:

plot(x,y,xlim=range(x), ylim=range(y), xlab="x", ylab="y", main="Filled Plane",pch=16)
#lines(x,y,xlim=range(x),ylim=(y),pch=16)
for(i in 1:20){
  arrows(x[i],y[i],x[i+1],y[i+1],length = 0.25, angle = 30, col = 1:3)
}

1 ответ

Решение

Одним из вариантов является использование стрелок. Во-первых, вам нужно создать сюжет с данными, которые вы хотите. Затем вы можете рисовать линии, чтобы соединить ваши точки. Допустим, у вас есть случайные равномерные массивы x,y. Установите предел, чтобы решить, сколько точек вы хотите построить. Хотя я сразу расставил точки (иначе не смог бы правильно расположить сетку) Надеюсь, это поможет.

limit<- 50
x <- runif(limit)
y <- runif(limit)
plot(x,y, xlim=range(0,1), ylim=range(0,1),
    xlab="x", ylab="y", main = "Random Walk")
grid(nx = 10, ny = 10, col = "lightgray", lty = "dotted", 
    lwd = par("lwd"), equilogs = TRUE)
for(i in 1:limit){
  arrows(x[i],y[i],x[i+1],y[i+1], length = 0.1, angle = 20)
  Sys.sleep(0.5)
}
Другие вопросы по тегам