我正在尝试使用[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天。
我没有在网上找到这个问题 - 我错过了一些明显的东西吗?
由于
答案 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];
...