rcharts:nPlot使用日期格式化x轴

时间:2014-06-21 18:50:21

标签: r rcharts

我有一个包含日期和整数的data.frame:

  df <- data.frame(date=seq.Date(from=as.Date("2012/01/01"), to=as.Date("2012/02/28"), by="1 day"), y=1:59)

我想用rCharts nPlot绘制data.frame:

  n <- nPlot(y ~ date, group = "team", data = df, type = "lineChart")
  n$xAxis(
    tickFormat =   "#!
      function(d) {return d3.time.format('%Y-%M-%d')(new Date(d));}
    !#",
    rotateLabels = -90
  )
  n

但x轴格式不正确。

nPlot with wrong x-axis

那么如何正确格式化日期呢?

2 个答案:

答案 0 :(得分:2)

在R as.numeric(someDate)中起源于天。这里我们需要距离原点毫秒。 所以它应该是

  df <- data.frame(date=seq.Date(from=as.Date("2012/01/01", origin="1970-01-01"), to=as.Date("2012/02/28", origin="1970-01-01"), by="1 day"), y=1:59)

  n <- nPlot(y ~ date, group = "team", data = df, type = "lineChart")
  n$xAxis(
    tickFormat =   "#!
      function(d) {return d3.time.format('%Y-%m-%d')(new Date(d*1000*3600*24));}
    !#",
    rotateLabels = -90
  )
  n

答案 1 :(得分:0)

%M是分钟,你想要的是%m,这会让你有几个月的时间:

 n <- nPlot(y ~ date, group = "team", data = df, type = "lineChart")
  n$xAxis(
    tickFormat =   "#!
      function(d) {return d3.time.format('%Y-%m-%d')(new Date(d));}
    !#",
    rotateLabels = -90
  )
  n