2014-06-30 23 views
6

Tôi có cốt truyện như sau:Làm cách nào để thêm chú thích vào ggplot theo cách thủ công? - R

Plot

Code tôi sử dụng để tạo ra âm mưu này là:

ggplot(df, aes(x = instance, y = total_hits))+ 
geom_point(size = 1)+ 
geom_line()+ 
geom_line(aes(x=df$instance, y = line1), colour="red")+ 
geom_vline(xintercept=805) + 
geom_line(aes(x=df$instance, y = line2), colour="blue")+ 
geom_line(aes(x=df$instance, y = line3), colour="purple") 

Tôi muốn thêm một huyền thoại đến âm mưu này, nhãn mỗi hàng. Tuy nhiên, vì tôi đã thêm từng dòng theo cách thủ công, tôi không chắc chắn cách thêm chú thích. Lời khuyên/lời khuyên nào?

  • Tôi không thể chia sẻ dữ liệu tôi đang sử dụng, vì vậy tôi chỉ đang tìm cách tổng hợp để thêm chú thích theo cách thủ công.
+1

Vì bạn không thể chia sẻ cốt truyện của mình, bạn có thể làm cho ví dụ của bạn có thể tái tạo bằng cách (a) sử dụng bộ dữ liệu tích hợp hoặc (b) mô phỏng ví dụ minh họa nhỏ không? Nó tiết kiệm tất cả những người có thể cố gắng trả lời câu hỏi của bạn từ việc phải tự làm điều đó và đưa mọi người trên cùng một trang. – Gregor

Trả lời

19

ggplot thực sự chỉ thích vẽ truyền thuyết cho những thứ có ánh xạ thẩm mỹ. Nếu bạn đặt "tên mã" cho màu sắc, bạn có thể xác định chúng theo thang đo thủ công cho thuộc tính đó. Ví dụ:

ggplot(df, aes(x = instance, y = total_hits))+geom_point(size = 1)+geom_line()+ 
geom_line(aes(x=instance, y = line1, colour="myline1")) + 
geom_vline(xintercept=805)+geom_line(aes(x=df$instance, y = line2, colour="myline2"))+ 
geom_line(aes(x=instance, y = line3, colour="myline3")) + 
scale_colour_manual(name="Line Color", 
    values=c(myline1="red", myline2="blue", myline3="purple")) 

sẽ hoạt động (chưa được kiểm tra vì bạn không cung cấp bất kỳ dữ liệu nào). Bất cứ lúc nào bạn hỏi một câu hỏi, nó chỉ là lịch sự để bao gồm một reproducible example để câu trả lời-er không phải làm tất cả các công việc mình để kiểm tra.

+1

Điểm nổi bật là: di chuyển câu lệnh 'color =" red "' từ bên ngoài dấu ngoặc đơn 'aes()' vào bên trong chúng cho mỗi geom. –

+0

@BrianD Sai, đầu tiên, không có câu lệnh 'color =" red "' trong ví dụ, thứ hai, nếu bạn có nghĩa là 'color =" myline1 "', nó phải nằm trong 'aes()'. – Meow

+0

@meow Nhận xét của tôi đã đề cập đến ví dụ của OP. Tôi đồng ý với câu trả lời ở trên. Và có, các câu lệnh color = phải nằm trong aes(). –

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