2017-03-04 6 views
0

Ich habe einen großen Datensatz, wo Individuen im Laufe der Zeit Wert erhöhen und den Status 1 oder 0 haben. Ich kann eine Linie für jede Person im Laufe der Zeit zeichnen, die Linien färben, je nachdem, ob sie sind a 0 oder a 1.ggplot2- Multiple-line-Plot-Sequenz

Ich kann nicht herausfinden, wie man dann alle Nullen über alle 1s geplottet hat, so dass die Nullen keine 1 über die Spitze von ihnen haben.

Ich habe sie Gruppen zugewiesen und dann die Gruppenreihenfolge festgelegt und versucht, nach Gruppe zu plotten, aber das funktioniert nicht.

Um das Problem zu demonstrieren, kann ich das ChickWeight-Dataset verwenden. Wenn ich unter Verwendung des folgenden Skripts plotte, dann sind die grauen Linien über dem Blau, ich möchte sie noch grafisch darstellen können, indem ich blau für Küken 1 verwende, aber die blauen Linien oben auf den grauen.

ggplot(ChickWeight, aes(x=Time, y=weight, colour=Chick))+ 
geom_point(aes(colour=Diet,shape=Diet),size=1.5)+ 
geom_line(aes(colour=Diet,group=Chick))+ 
scale_colour_manual(values=c('blue','grey','grey','grey')) 

Antwort

0

Es ist wahrscheinlich am einfachsten, eine Doppel GEOMS zu tun Plotten, um zu kontrollieren:

ggplot(mapping = aes(x=Time, y=weight, colour=Diet, group=Chick, shape=Diet))+ 
    geom_line(data = ChickWeight[ChickWeight$Diet != '1', ])+ 
    geom_line(data = ChickWeight[ChickWeight$Diet == '1', ])+ 
    geom_point(size=1.5, data = ChickWeight[ChickWeight$Diet != '1', ])+ 
    geom_point(size=1.5, data = ChickWeight[ChickWeight$Diet == '1', ])+ 
    scale_colour_manual(values=c('blue','grey','grey','grey')) 

enter image description here

+1

Ich glaube, du besseres Ergebnis, wenn man die geom, um 1) Linie zeigen Sie dann für ändern grau, gefolgt von 2) Linie dann Punkt für blau – dww

+0

@dww, ah ja, das ist wahr. Das Prinzip sollte jedoch klar sein. – Axeman