2016-04-13 19 views
7

Ich habe Daten, die aus mehreren Datenpunkten für eine Reihe von Individuen besteht, und jeder dieser Personen ist von einer bestimmten Studienseite. Ich möchte alle Punkte grafisch darstellen, 95% Ellipsen für jedes Individuum zeichnen, aber dann die Ellipsen nach Studienort färben. Leider scheint die Ellipse für die aggregierte Gruppe gezeichnet zu werden, wenn ich nach Ort eine Farbe vorschlage.ggplot2 zeichnen einzelne Ellipsen, aber Farbe nach Gruppe

Die Daten sehen wie folgt aus:

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) 

Wenn ich Ellipsen durch einzelne ziehen, kann ich separat alle der Ellipsen sehen:

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") 

individual ellipses

aber wenn ich zeichne durch die Gruppe, es macht nur eine Ellipse pro Gruppe:

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') 

group ellipses

Wie kann ich ziehen alle 9 Ellipsen sondern sie durch Gruppe färben? Danke für die Hilfe!

Antwort

4

Explizit definieren die Gruppen:

ggplot(ggdat) + 
    geom_point(aes(x=X, y=Y,color=indiv_id),size=1) + # 
    stat_ellipse(aes(x=X, y=Y,color=group_id, group=indiv_id),type = "norm") + 
    theme(legend.position='none') 

enter image description here

Verwandte Themen