2011-12-14 8 views
8

đây là một vấn đề đơn giản mà chắc chắn bạn đã đi qua, nhưng đem lại cho tôi một nhức đầu lớn ...Làm thế nào để đặt tên tấm trong mạng

Tôi có một dataframe như thế này:

set.seed(3) 
mydata <- data.frame(var = rnorm(100,20,1), 
        temp = sin(sort(rep(c(1:10),10))), 
        subj = as.factor(rep(c(1:10),5))) 

và Tôi cần phải thực hiện một âm mưu phân tán cho mỗi subj, không phải là một vấn đề, nhưng ... những gì tôi muốn là để thay thế các dải từ mạng và thêm một nhãn cho mỗi lô. tôi quản lý để làm điều này với đoạn mã sau, nhưng tôi vẫn không hạnh phúc ...

xyplot(var ~ temp | subj, 
     data = mydata, 
     strip=FALSE, 
     panel = function(x, y,...) { 
       panel.xyplot(x, y,...) 
       panel.text(1,21,labels=which.packet()) 
       }) 

Bit cuối cùng ... nơi mà tôi đã xếp chồng lên nhau ... là làm thế nào để in chữ thay vì con số trong mỗi bảng. Tôi muốn gọi các tấm a, b, c ... và vân vân.

Bất kỳ đề xuất ... Rất cám ơn matteo

Trả lời

9

Bạn hầu như đã nhận nó. Nếu bạn cần chữ cái, sau đó chỉ số letters với panel.number():

xyplot(var ~ temp | subj, 
    data = mydata, 
    strip=FALSE, 
    panel = function(x, y,...) { 
      panel.xyplot(x, y,...) 
      panel.text(1,21,labels=letters[panel.number()]) 
      }) 

Bạn cũng có thể xác định một vector nhân vật bên trong chức năng bảng điều khiển của bạn và sử dụng giản đồ lập chỉ mục này với nó.

+0

cảm ơn rất nhiều giải Oscar ... đó thực sự là trợ giúp – matteo