2017-08-02 5 views
-4

私はdata.tableが日中のタイムスタンプ用に2つ、日付用と時刻用の2つの列を好みますと思います。しかし、どのようにしてggplotで時系列をプロットすることができますか?R data.tableは日中のデータとggplotを扱います

dt = data.table(timestamp = c('2000-01-01 00:00:00', '2000-01-01 01:00:00','2000-01-02 00:00:00', '2000-01-02 01:00:00'), 
      value = c(1,2,3,4)) 
dt[, date := as.IDate(stringr::str_sub(timestamp, 1, 10))] 
dt[, time := as.ITime(stringr::str_sub(timestamp, 11))] 

ggplot(dt) + geom_line(aes(x = ???, y = value)) 
+0

時間は常に0時00分である場合、あなたは右、それをスキップし、日付だけを使用できますか?そうでなければ、プロットするためにdatetime形式に変換する必要があると思います。 (私はggplotを使わないので、詳細は分かりません)。 – Frank

答えて

1

上記フランクさんのコメントを1として、あなたはPOSIXct形式にタイムスタンプを変換することができます:

ggplot(dt %>% 
     mutate(timestamp = as.POSIXct(timestamp, format = "%Y-%m-%d %H:%M:%S"))) + 
    geom_line(aes(x = timestamp, y = value)) + 
    scale_x_datetime() # you can tweak the appearance of x-axis here. 

(私はあなたの日付のYYYY-MM-DD形式を想定し、それはYYYY-DD-MMか何かだ場合。 、ちょうどそれに応じてフォーマットの仕様を変更してください。)

enter image description here

関連する問題