Необходим пример: использование arrow() с ggplot2

Я хотел бы создать geom_path() со стрелками, указывающими на следующее место на пути.

Я могу без проблем получить путь к сюжету, например:

df <- (x=1:12, y=20:31, z=1:12)
p <- ggplot(df, aes(x=x, y=y))
p + geom_point() + geom_path()

Теперь то, что я хотел бы сделать, это построить стрелки от одного элемента на пути к другому.

Дополнительные баллы, если бы вы могли сказать мне, как сгладить линии от одного элемента пути к другому.


person Brandon Bertelsen    schedule 06.08.2010    source источник


Ответы (1)


geom_segment имеет аргумент arrow. Вот краткий пример:

library(grid) # needed for arrow function

p <- ggplot(df, aes(x=x, y=y)) +
     geom_point() +
     geom_segment(aes(xend=c(tail(x, n=-1), NA), yend=c(tail(y, n=-1), NA)),
                  arrow=arrow(length=unit(0.3,"cm")))

library(grid) требуется для функции arrow(), см. здесь.

person rcs    schedule 06.08.2010
comment
geom_segment работал как шарм, но мне интересно, почему вы выбрали geom_segment вместо того, что кажется основной функцией geom_path? - person Brandon Bertelsen; 06.08.2010
comment
geom_path (или geom_line) не строит стрелку в каждом сегменте, есть только одна стрелка в позиции последней точки. - person rcs; 07.08.2010
comment
Спасибо за пояснение rcs. - person Brandon Bertelsen; 09.08.2010
comment
@rcs добавил библиотеку (сетку), также ссылка на изображение не работает. - person zx8754; 17.04.2014