2017-10-18 73 views
0

我一直试图让一个简单的xy图工作日期时间是在x轴上。我已经尝试过几个帖子的合并,但无济于事。R ggplot日期时间问题

下面是示例数据:

datetime,temp,humidity 
2017-10-15 15:00:00,84.05,36.36 
2017-10-15 16:00:00,84.21,36.21 
2017-10-15 17:00:00,82.74,41.79 

我导入的CSV为 “ENV”

我然后运行该代码:

env$'date-time' <- as.POSIXct(env$'date-time',format = "%y%m%d %H:%M:%S") 
library(scales) 
x <-ggplot(env, aes(x='date-time')) + 
    geom_line(aes(y = temp)) + 
    geom_line(aes(y = humidity)) + 
    scale_x_datetime(labels = date_format("%Y-%m-%d %H:%M:%S")) 
x 

这是错误: 错误:输入无效:time_trans仅适用于POSIXct类对象

str(env) produces this: 
$ date-time: POSIXct, format: "2017-10-15 15:00:00" "2017-10-15 16:00:00" 
"2017-10-15 17:00:00" ... 
$ temp  : num 84 84.2 82.7 83.1 83.2 ... 
$ humidity : num 36.4 36.2 41.8 45.2 46 ... 
+0

您的示例数据具有'datetime',您的代码具有'date-time'(带有连字符)。哪个是对的? – neilfws

+0

是的。简单的错字,因为我正在玩列名。删除“ - ”不需要引用该名称。 – Chuck

回答

2

此行是错误的:

env$'date-time' <- as.POSIXct(env$'date-time',format = "%y%m%d %H:%M:%S") 

格式应该是format="%Y-%m-%d %H:%M:%S"

看看是否能解决您的问题。

+0

如果该列名为'date-time'(因为它在问题代码中),而不是'datetime'(因为它在问题示例数据中),这将起作用。 – neilfws

+1

@neilfws是的,但假设列的名称是正确命名的,则提供的代码的第一行中指定的'format'是错误的 – Mako212

+1

我知道。我只是强调了变量名称中的含糊性。 – neilfws