У меня есть линейная линия, которая представляет собой путешествие по некоторым улицам. Но я хочу на самом деле представить путешествие велосипедистов, которое смещено от линии, то есть они движутся около обочины дороги. Я борюсь с тем, как это сделать. Я сделал воспроизводимый фрагмент кода R для иллюстрации.
## Let's say I have a route along some streets.
library(ggplot2)
## It can be described by this
data <- data.frame(x = c(1,3,10,5,0,5),
y = c(1,3,1,0,5,7),
label = c('a', 'b', 'c', 'd', 'e', 'f'))
## Visualised by this
ggplot(data, aes(x, y)) +
geom_path() +
geom_text(aes(label=label),hjust=0, vjust=0)
Но то, что я хочу сделать, это модель, как будто кто-то ехал на велосипеде. Допустим, они проходят на расстоянии 0,5 от центральной линии дороги, влево, но, конечно, «влево» относительно направления линии. Начало пути будет выглядеть примерно так. Обратите внимание на «new_x» и «new_y». не математически правильно. Это оценки в иллюстративных целях.
data <- data.frame(x = c(1,3,10,5,0,5),
y = c(1,3,1,0,5,7),
new_x = c(0.7, 3, 10.5,NA, NA, NA) ,
new_y = c(1.5, 3.5, 1, NA, NA, NA),
label = c('a', 'b', 'c', 'd', 'e', 'f'))
## Visualised by this showing the old line and the new line
ggplot(data, aes(x, y)) +
geom_path() +
geom_text(aes(label=label),hjust=0, vjust=0) +
geom_path(data = data, aes(new_x, new_y), colour='red')
Итак, вопрос в том, как правильно рассчитать new_x и new_y, чтобы создать непрерывную линию, представляющую поездку велосипедиста в виде смещения от центра дороги