2017-08-31 142 views
0

我想繪製個人在特定日期範圍內的數據。我已經粘貼了以前工作過的示例代碼,但是我沒有關閉所有數據,只是在2016年11月30日之後發生了什麼。我試過這裏顯示的解決方案(Select Data After Specific Date),但是我得到「錯誤:無效的輸入:date_trans僅適用於Date類的對象。」有任何想法嗎?使用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

您需要到子集數據,像'ggplot(是myDF [myDF上$日期> 「2016年11月30日」 ,],aes(Date,variable1))'。 'Date>「2016-11-30」'本身生成一個「TRUE」/「FALSE」值的向量。 – Marius

+0

首先將數據子集然後饋入ggplot? – useR

回答

2

子集化嘗試數據幀,同時將其送入ggplot這樣的:

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」是一個字符串。它不應該像'as.Date(「2016-11-30」,format =「%Y-%m-%d」)'? –

+0

謝謝,這是一個很好的提及,但在這種情況下,它會以相同的方式使用或不使用「as.Date」。我們可以通過運行變體「2016-11-30」>「2016-11-29」來測試它,並查看它是否在R控制檯中輸入true/false。這裏所示的情況打印真實。 – www

+0

完美!謝謝 – SportSci