Javascript 数组索引的D3时间刻度
我试图将数组索引映射到d3.js中的时间范围,因为我没有数组的单独日期-我只知道值在1900和2000之间Javascript 数组索引的D3时间刻度,javascript,d3.js,visualization,graph-visualization,Javascript,D3.js,Visualization,Graph Visualization,我试图将数组索引映射到d3.js中的时间范围,因为我没有数组的单独日期-我只知道值在1900和2000之间 var data = [45,678,490...]; // length 820 var x = d3.time.scale().range([0, width]).domain([new Date(1900, 0, 0), new Date(2000, 0, 0)]); // line function var line = d3.svg.line() .x(functio
var data = [45,678,490...]; // length 820
var x = d3.time.scale().range([0, width]).domain([new Date(1900, 0, 0), new Date(2000, 0, 0)]);
// line function
var line = d3.svg.line()
.x(function(d,i) {
// here map i to date between domain min / max
return x(i);
})
.y(function(d) {
return y(d);
});
有没有比手动计算每个数组值的日期更聪明的方法?也许是计算步长和递增?使用另一个从索引值映射到当前:
var arrayScale = d3.time.scale()
.domain([0, data.length])
.range([new Date(1900, 0, 0), new Date(2000, 0, 0)]);
我不知道你想做什么。看起来数组中只有数字,但在代码中没有将它们转换为日期。也许你需要两个刻度,一个将数组中的数字映射到日期,另一个将日期映射到坐标?当然,你也可以用一个单一的比例将一个数字映射到一个坐标。我将数组值[45678490…]映射到y轴,但我的问题是将数组索引值[0,1,2,3,4…]映射到1900到2000之间的日期。