2017-08-31 7 views
0

Ich versuche, Daten innerhalb eines bestimmten Datumsbereichs für Einzelpersonen zu plotten. Ich habe einen Beispielcode eingefügt, der vorher funktioniert hat, aber ich übergebe nicht alle Daten, was nach dem 30.11.2016 passiert. Ich habe die hier gezeigte Lösung ausprobiert (Select Data After Specific Date), aber ich bekomme "Fehler: Ungültige Eingabe: date_trans arbeitet nur mit Objekten der Klasse Date." Irgendwelche Ideen?Plot spezifischen Datumsbereich mit ggplot2

mydf<- data.frame(Date = as.Date(Subject$date, format = "%m/%d/%Y"), 
        variable1 = (Subject$var1), 
        variable2 = (Subject$var2), 
        variable3 = (Subject$var3), 
        variable4 = (Subject$var4)) 

ggplot(mydf, aes(Date > "2016-11-30", variable1)) + 
    geom_point() + 
    stat_smooth(color = "blue", fill = "lightskyblue") + 
    theme(axis.title.x = element_blank()) + 
    ylab("") + xlab("")+ 
    ggtitle("Variable 1 units") + 
    scale_x_date(date_breaks = "months", 
       date_labels = "%b%y") + 
    theme_hc() 
+0

Sie müssen die Daten, so etwas wie 'ggplot (mydf [mydf $ Date> "2016.11.30" der Teilmenge ,], aes (Datum, Variable1)) '. 'Date>" 2016-11-30 "' erzeugt selbst einen Vektor von 'TRUE' /' FALSE' Werten. – Marius

+0

Subset Ihre Daten zuerst und dann Feed in ggplot? – useR

Antwort

2

Versuchen Sie, die Datenrahmen subsetting während es ggplot wie diese Fütterung:

ggplot(data=mydf[which(mydf$Date>"2016-11-30"),], 
     aes(x=Date, y=variable1)) + 
     geom_point() + 
     stat_smooth(color = "blue", fill = "lightskyblue") + 
     theme(axis.title.x = element_blank()) + 
     ylab("") + xlab("")+ 
     ggtitle("Variable 1 units") + 
     scale_x_date(date_breaks = "months", 
        date_labels = "%b%y") + 
     theme_hc() 
+0

"2016-11-30" ist eine Zeichenkette. Sollte es nicht etwas wie 'as.Date (" 2016-11-30 ", format ="% Y-% m-% d ") sein? –

+0

Danke, das ist ein guter Punkt zu erwähnen, aber in diesem Fall wird es genauso funktionieren mit oder ohne 'as.Date'. Wir können dies testen, indem wir Variationen von: "2016-11-30"> "2016-11-29" ausführen und sehen, ob es in der R-Konsole wahr/falsch ausgibt. Der hier dargestellte Fall ist wahr. – www

+0

Perfekt! Vielen Dank – SportSci