#r
#r
Вопрос:
У меня есть фрейм данных, который содержит координаты x и y для случайного блуждания, которое перемещается дискретными шагами (1 шаг вверх, вниз, влево или вправо). Я хотел бы построить путь — точки, соединенные линией. Конечно, это просто. Сложность в том, что путь пересекает сам себя и становится трудным для интерпретации. Я добавляю дрожание к точкам, чтобы избежать перерисовки, но это не помогает различать порядок прохождения.
Я хотел бы соединить точки с помощью линии, которая меняет цвет со временем (шагами) в соответствии с цветовой шкалой, подобной термометру.
Мое случайное блуждание хранится в своем собственном классе, и я пишу plot
для него конкретный метод, поэтому, если у вас есть предложения о том, как я могу это сделать plot
, это было бы здорово. Спасибо!
Ответ №1:
Это довольно легко сделать в ggplot2
:
so <- data.frame(x = 1:10,y = 1:10,col = 1:10)
ggplot(so,aes(x = x, y = y))
geom_line(aes(group = 1,colour = col))
Ответ №2:
Если вы предпочитаете не использовать ggplot, тогда ?segments
он будет делать то, что вы хотите. — Я предполагаю, что x и y являются функциями времени, как подразумевается в вашем примере.
Комментарии:
1. Может быть, только я, но ggplot не работал для меня, поскольку, казалось, сначала сортировал данные (или, по крайней мере, так появился результат). Он отлично работает для чего-то вроде одномерного случайного блуждания по времени, но не для 2d, как спросил Чарли, где время представлено цветом.
Ответ №3:
Если вы используете ggplot, вы можете настроить цветовую эстетику:
library(ggplot2)
walk <-cumsum(rnorm(n=100, mean=0))
dat <- data.frame(x = seq_len(length(walk)), y = walk)
ggplot(dat, aes(x,y, colour = x)) geom_line()