2010-08-06 36 views
11

Tôi muốn tạo geom_path() có mũi tên chỉ về vị trí tiếp theo trong đường dẫn.Ví dụ cần thiết: Sử dụng mũi tên() với ggplot2

Tôi có thể lấy đường dẫn đến âm mưu, mà không vấn đề, ví dụ:

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

Bây giờ những gì tôi muốn để có thể làm là cốt truyện trỏ mũi tên từ một yếu tố trong đường dẫn đến tiếp theo .

Dấu phụ nếu bạn có thể cho tôi biết cách làm mịn các dòng từ một phần tử trong đường dẫn đến phần tiếp theo.

Trả lời

16

geom_segment có một đối số arrow. Dưới đây là một ví dụ nhỏ:

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) là cần thiết cho arrow() chức năng, xem here.

+0

geom_segement làm việc như một sự quyến rũ, nhưng tôi tự hỏi tại sao bạn chọn để đi với geom_segment trên những gì có vẻ là chức năng chính của geom_path? –

+1

'geom_path' (hoặc' geom_line') không vẽ mũi tên trong mỗi đoạn, chỉ có một mũi tên ở vị trí của điểm cuối cùng. – rcs

+0

Cảm ơn bạn đã giải thích rcs. –

Các vấn đề liên quan