Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 数组索引的D3时间刻度_Javascript_D3.js_Visualization_Graph Visualization - Fatal编程技术网

Javascript 数组索引的D3时间刻度

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

我试图将数组索引映射到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(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之间的日期。