【问题标题】:Problems creating datetime series graph in R using ggplot使用 ggplot 在 R 中创建日期时间序列图的问题
【发布时间】:2014-11-17 16:59:44
【问题描述】:

我正在尝试创建具有以下特征的图表:

  • x 轴:时间和日期
  • y 轴:数据

你可以在这里下载我的数据框:https://my.cloudme.com/josechka/data

我尝试使用以下方法生成图表:

p <- ggplot(data,aes(x = Date, y = Var,group = 1)) 
        + geom_line() 
        + scale_x_date(labels = date_format("%m/%d/%Y")) 
        + scale_y_continuous(limits = c(0, 70000))    
p    

我得到了结果:

Error: Invalid input: date_trans works with objects of class Date only

我是 R 和 ggplot 的新手。我做错了什么?

【问题讨论】:

  • 首先在日期列上使用as.Date()
  • ...正如基根所说,但format="%m/%d/%Y"

标签: r ggplot2 timeserieschart


【解决方案1】:

按照建议,您必须将 Date 列格式化为 Date 对象。

data$Date<-as.Date(data$Date, format="%d/%m/%Y")

现在您可以使用脚本来创建情节:

library("ggplo2") 
library("scales")
p <- ggplot(data,aes(x = Date, y = Var,group = 1)) 
        + geom_line() 
        + scale_x_date(labels = date_format("%m/%d/%Y")) 
        + scale_y_continuous(limits = c(0, 70000))    
p

这是结果图:

【讨论】:

    【解决方案2】:

    感谢 cmets。他们帮助我找到了解决方案。两个 cmets 都允许代表我的数据。但是,有一个小问题:同一天的数据被分组,无法看到变量的日常行为。我测试了使用下一个命令格式化日期列:

    as.POSIXct(data$Date, format="%d/%m/%Y %H:%M:%S")    
    

    成功了。然而,以 d/m/Y h:m:s 格式保存原始数据很重要。非常感谢 cmets 帮助我解决了我的问题。

    【讨论】:

      猜你喜欢
      • 2022-08-14
      • 2012-12-10
      • 1970-01-01
      • 2015-08-19
      • 2016-05-08
      • 1970-01-01
      • 2018-02-09
      • 1970-01-01
      • 2016-03-29
      相关资源
      最近更新 更多