2013-06-04 3 views
0

배열 인덱스를 d3.js의 시간 범위에 매핑하려고합니다. 배열에 대해 개별 날짜가 없으므로 - 나는 값이 1900에서 2000 사이임을 알고 있습니다.배열 인덱스에서 D3 시간 스케일

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); 
    }); 

각 배열 값의 날짜를 수동으로 계산하는 것보다 현명한 방법이 있습니까? 아마도 단계를 계산하고 증가시키는 것일까 요?

+0

난 당신이 뭘 하려는지 모르겠어요. 배열에 숫자 만있는 것처럼 보이지만 코드의 날짜로 변환하지는 않습니다. 어쩌면 배열에있는 숫자를 날짜로 매핑하는 두 개의 스케일과 그 날짜를 좌표로 매핑하는 두 번째 스케일을 원할 것입니다. 물론 숫자를 좌표로 매핑하는 단일 축척을 사용할 수도 있습니다. –

+0

배열 값 [45,678,490 ...]을 Y 축에 매핑하고 있지만 배열 인덱스 값 [0,1,2,3,4 ...]을 1900 년에서 2000 년 사이의 날짜로 매핑하는 것이 문제입니다. – MALK

답변

1

를 사용하여 다른 scale는 지금까지 인덱스 값에서지도로 :

var arrayScale = d3.time.scale() 
        .domain([0, data.length]) 
        .range([new Date(1900, 0, 0), new Date(2000, 0, 0)]); 
+0

간단합니다 - 감사합니다. Adam. – MALK