R data.table处理日内数据和ggplot

时间:2017-08-02 09:10:30

标签: r ggplot2 data.table

我认为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))

1 个答案:

答案 0 :(得分:1)

根据Frank上面的评论,您可以将时间戳转换为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