x轴上日期的奇怪间距(D3)

时间:2015-02-27 23:12:32

标签: d3.js

我正在尝试使用[datetime,value]形式的数据点数组创建一个简单的柱形图,例如[1422345600000,146]。我想用x轴上的日期绘制这些日期,每隔几天标记一次。我几乎设法完成了这个,但是前几个蜱奇怪地靠近在一起。

您可以在此处查看:http://jsfiddle.net/9r4fqbnm/2/

我试过

var xAxis = d3.svg.axis()
    .scale(x)
    .orient('bottom')
    .ticks(d3.time.days,7)
    .tickFormat(d3.time.format("%m/%d/%Y"))

并且前两个之后的刻度确实相隔7天。

我没有在网上找到这个问题 - 我错过了一些明显的东西吗?

由于

1 个答案:

答案 0 :(得分:1)

您的问题是您的数据阵列。我懒得深入研究每个值,看看哪个是罪魁祸首,但基本上是通过将其转换为人类可读的格式并确保值有效 - 解决了问题:

  function getDate(y, m, d) {
    return new Date(y, m, d);
} 
 var data = [
[getDate(2015, 1, 27), 146], [getDate(2015, 1, 28), 132], ...,  [getDate(2015, 2, 24), 67], [getDate(2015, 2, 25), 46]
];

var startDate = data[0][0];
var endDate = data[data.length - 1][0];

...

http://jsfiddle.net/2L3fy90j/1/