Mam dane, które składają się z kilku punktów danych dla wielu osób, a każda z tych osób pochodzi z konkretnej witryny badania. Chciałbym narysować wszystkie punkty, narysować 95% elips dla każdej osoby, ale następnie pokolorować elipsy według miejsca badania. Niestety wydaje się, że gdy określam kolor na podstawie strony, rysowana jest elipsa dla zagregowanej grupy.ggplot2 losowanie pojedynczych elips, ale kolor według grupy
Dane wyglądać następująco:
dat1 <- data.frame(X=rnorm(21),Y=rnorm(21),indiv_id=rep(c(1,2,3),7),group_id=rep(1,21))
dat2 <- data.frame(X=rnorm(21,5),Y=rnorm(21,5),indiv_id=rep(c(4,5,6),7),group_id=rep(2,21))
dat3 <- data.frame(X=rnorm(21,10),Y=rnorm(21,10),indiv_id=rep(c(7,8,9),7),group_id=rep(3,21))
ggdat <- rbind(dat1,dat2,dat3)
ggdat$indiv_id <- as.factor(ggdat$indiv_id)
ggdat$group_id <- as.factor(ggdat$group_id)
Gdybym rysować elipsy pojedynczymi, widzę wszystkich elips oddzielnie:
ggplot(ggdat) +
geom_point(aes(x=X, y=Y,color=indiv_id),size=1) + #
stat_ellipse(aes(x=X, y=Y,color=indiv_id),type = "norm")
ale jeśli rysuję przez grupa tworzy tylko jedną elipsę na grupę:
ggplot(ggdat) +
geom_point(aes(x=X, y=Y,color=indiv_id),size=1) + #
stat_ellipse(aes(x=X, y=Y,color=group_id),type = "norm") + #, linetype = 2
theme(legend.position='none')
Jak mogę narysować wszystkie 9 elipsy ale pokolorować ich grupy? Dzięki za pomoc!