2010-03-10 32 views
11

JD Long đã giúp tôi với điều này: question about manual annotation. Nhưng có thể làm điều gì đó tương tự trên một âm mưu có khuôn mặt, sao cho phong cách nhãn tương ứng với phong cách (tính chất động học) và theo cách mà tôi có thể chú thích các khía cạnh khác nhau một cách riêng lẻ không? Không phải như vậy?Hướng dẫn chú thích một ggplot với các nhãn khác nhau, theo các khía cạnh khác nhau

Một số dữ liệu:

funny <- structure(list(Institution = structure(c(1L, 1L, 1L, 1L, 2L, 
2L, 2L, 2L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 3L, 
3L, 3L, 3L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 1L, 
1L, 1L, 1L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L), .Label = c("Q-branch", 
"Some-Ville", "Spectre"), class = "factor"), Type = structure(c(5L, 
6L, 1L, 3L, 5L, 6L, 2L, 4L, 5L, 6L, 2L, 4L, 5L, 6L, 2L, 4L, 5L, 
6L, 2L, 4L, 5L, 6L, 2L, 4L, 5L, 6L, 2L, 4L, 5L, 6L, 2L, 4L, 5L, 
6L, 2L, 4L, 5L, 6L, 2L, 4L, 5L, 6L, 2L, 4L, 5L, 6L, 2L, 4L), .Label = c("Korte videregående uddannelser", 
"Mammas beer", "Mellemlange videregående uddannelser", "Tastes good", 
"Unknown", "Your"), class = "factor"), År = c(2008L, 2008L, 
2008L, 2008L, 2008L, 2008L, 2008L, 2008L, 2008L, 2008L, 2008L, 
2008L, 2007L, 2007L, 2007L, 2007L, 2007L, 2007L, 2007L, 2007L, 
2007L, 2007L, 2007L, 2007L, 2007L, 2007L, 2007L, 2007L, 2007L, 
2007L, 2007L, 2007L, 2007L, 2007L, 2007L, 2007L, 2006L, 2006L, 
2006L, 2006L, 2006L, 2006L, 2006L, 2006L, 2006L, 2006L, 2006L, 
2006L), Mndr = c(3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 15L, 15L, 
15L, 15L, 15L, 15L, 15L, 15L, 15L, 15L, 15L, 15L, 27L, 27L, 27L, 
27L, 27L, 27L, 27L, 27L, 27L, 27L, 27L, 27L), Data = c(159L, 
NA, NA, 23L, 204L, NA, NA, 12L, 256L, NA, NA, 24L, 166L, 6L, 
NA, 43L, 228L, NA, NA, 20L, 196L, 11L, NA, 37L, 99L, 14L, 9L, 
96L, 147L, 7L, 5L, 91L, 100L, 10L, 7L, 126L, 60L, 17L, 6L, 106L, 
78L, 18L, 13L, 140L, 48L, 23L, 5L, 136L)), .Names = c("Institution", 
"Type", "År", "Mndr", "Data"), class = "data.frame", row.names = c(NA, 
-48L)) 

Và một âm mưu facetted:

ggplot(funny, aes(Mndr, y=Data, group=Type, col=Type)) + 
    geom_line() + 
    facet_grid(.~Institution) 

Cảm ơn trước sự giúp đỡ của bạn!

+0

@Shane: Tôi không nghĩ đây là bản sao - Andreas không muốn sử dụng dữ liệu trong cốt truyện để tính toán giá trị, mà là định dạng nhãn của mình để phù hợp với kiểu của các dòng. – Aniko

+0

@Shane Cảm ơn sự quan tâm của bạn. Câu trả lời của Aniko chính xác là những gì tôi đang hy vọng. Vì vậy, tôi đoán không cần phải làm rõ hơn? Trừ khi cho hậu thế của nguyên nhân. Cảm ơn một lần nữa. – Andreas

+0

Câu hỏi liên quan: http://stackoverflow.com/questions/2050610/creating-a-facet-wrap-plot-with-ggplot2-with-different-annotations-in-each-plot – Shane

Trả lời

15

Ý tưởng là đối với mỗi chú thích thủ công, bạn phải xác định không chỉ nhãn, mà còn tất cả các biến xác định bảng, màu, vv Mã sau đây thêm hai nhãn trong các bảng khác nhau.

pl <- ggplot(funny, aes(Mndr, y=Data, group=Type, col=Type))+geom_line() 
     +facet_grid(.~Institution) #your plot 
nd <- data.frame(Institution=c("Q-branch","Some-Ville"), #panel 
       Type=c("Unknown", "Tastes good"),  #color 
       Mndr=c(7,12),       #x-coordinate of label 
       Data= c(170,50),       #y-coordinate of label 
       Text=c("Label 1", "Label 2"))   #label text 
# add labels to plot: 
pl <- pl + geom_text(aes(label=Text), data=nd, hjust=0, legend=FALSE) 
pl 

Tùy chọn legend=FALSE sẽ đảm bảo rằng chữ nhỏ biểu thị văn bản không được thêm vào chú giải. Bạn không cần phải có khung dữ liệu cho các nhãn, bạn có thể có một geom_text riêng biệt cho mỗi nhãn, nhưng tôi thấy cách này đơn giản hơn.

+0

Theo như tôi có thể nói từ thủ công, cú pháp ggplot mới đã thay đổi một chút, huyền thoại = FALSE bây giờ là show_guide = FALSE, tôi nghĩ vậy. – PatrickT

+0

Tôi đang cố gắng sao chép các ô từ mã trong câu hỏi cũng như mã trong câu trả lời, nhưng cả hai ô đều giống hệt nhau. Không có văn bản nào được viết trên các ô trong trường hợp sau. Có gì thay đổi trong phiên bản ggplot2 (2.1.0) của tôi không? – Robert

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