2015-04-30 3 views
0

Я пытаюсь создать из графика XY следующего образца моего набора данных:Создание для графика XY предварительно после набора данных

dput(head(trainsamp,25)) 
structure(list(group = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L), .Label = c("Endurance", "Strength", "Concurrent"), class = "factor"), 
time = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L 
), .Label = c("Pre", "Post"), class = "factor"), FFM = c(55.883166, 
56.658898, 57.933614, 65.295368, 63.199246, 65.906551, 51.201461, 
49.218984, 53.773112, 71.202309, 53.042409, 50.749445, 50.771442, 
54.768907, 52.981304, 56.578874, 55.442133, 51.263485, 54.639979, 
60.626251, 59.256806, 63.780228, 67.094356, 55.860919, 59.185318 
), id = 1:25), .Names = c("group", "time", "FFM", "id"), row.names = c("1.1", 
"2.1", "3.1", "4.1", "5.1", "6.1", "7.1", "8.1", "9.1", "10.1", 
"11.1", "12.1", "13.1", "14.1", "15.1", "16.1", "17.1", "18.1", 
"19.1", "20.1", "21.1", "22.1", "23.1", "24.1", "25.1"), class = "data.frame") 

Я попытался следующий код:

library(lattice) 
xyplot(trainsamp$FFM~trainsamp$time|trainsamp$id,group=trainsamp$group,type="l",col=c("blue","red","black"), 
    ylab="Mean Fat Free Mass (kg)",xlab="Time", 
    main="Individual Trajectories") 
legend(locator(1),legend=levels(group),lty=1,col=c("blue","red","black")) 

И Я по-прежнему получить график, но легенда, кажется, отсутствует, и я получаю следующее сообщение об ошибке:

Error in levels(group) : object 'group' not found 

Я хочу, чтобы избежать использования attach команда. Может ли кто-нибудь сказать, почему у меня проблема с «группой»?

+0

Я думал, что поместил это в Cross Validated, может быть, это неправильно. – user3594490

ответ

0

Это последний ответ, но часть вашей проблемы заключается в том, что legend() является базовой графикой, а xyplot - от lattice, и эти два не очень хорошо сочетаются. Вы можете просто использовать аргумент auto.key=T, чтобы добавить ключ. Вот несколько очищенная версия вашего кода:

xyplot(FFM~time | id, group=group, data=trainsamp, type="p",  
    col=c("blue","red","black"), ylab="Mean Fat Free Mass (kg)", 
    xlab="Time",main="Individual Trajectories", auto.key=T) 
Смежные вопросы