繁体   English   中英

d3.js中日期的默认表示是什么?

[英]What is the default representation of date in d3.js?

我使用的是基于D3.js的可视化工具Dangle.js,我想知道使用d3.time.scale()表示日期的默认表示是什么。 面积图表示的代码包括此线,以表示x轴比例

var x = d3.time.scale()
.range([0, width]);

现在,要包含在图中的数据是:

    $scope.graph = {
    entries: [
      {time: "20120320", count: 100},
      {time: "20120321", count: 20},
      {time: "20120322", count: 43},
      {time: "20120323", count: 83}
    ]
};

但是,数据的“时间”格式错误,因此无法在x轴上的日期上正确显示它们。 日期应该是什么格式的数据? 一个例子将不胜感激。 非常感谢。

d3的时间刻度的默认表示形式是JavaScript Date对象

最佳做法是将数据中的日期字符串转换为加载时的Date对象。 例如,这可以使用D3内置的日期/时间格式来完成

var dateFormatIn = d3.time.format("%Y%m%d");

entries.forEach(function(entry) {
  entry.time = dateFormatIn.parse(entry.time);
});
x.domain( d3.extent(entries, function(d) { return d.time; }) );

这里是简单的jsfiddle 示例

d3 time.format仅将字符串格式化为Date对象,并且不会强制使用其他值。 它具有一个parse方法,可以将字符串转换为Date对象,格式可以指定。

d3.time.scale域可与Date对象一起使用,但是如果将其传递给Numbers,则domain()方法会将这些值强制转换为日期(即,自1970年以来将它们解释为毫秒)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM