Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Example Needed: Using arrow() with ggplot2

Tags:

r

ggplot2

I'd like to create a geom_path() that has arrows pointing towards the next location in the path.

I can get the path to plot, without issue, for example:

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

Now what I'd like to be able to do is plot that point arrows from one element in the path to the next.

Extra marks if you could tell me how to smooth the lines from one element in the path to the next.

like image 721
Brandon Bertelsen Avatar asked Aug 06 '10 05:08

Brandon Bertelsen


1 Answers

geom_segment has an arrow argument. Here's a short example:

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) is needed for arrow() function, see here.

like image 83
rcs Avatar answered Oct 03 '22 19:10

rcs