2013-08-17 3 views
3

난 ([VAL1, val2만큼]) 문서에 대해서는시간 척도를 사용하는 동안 d3 js에서 브러시 범위를 설정하는 방법은 무엇입니까?

brush.extent를 사용하여 칫솔질 문제를 가지고

var xScale = d3.scale.linear() 
    .domain(data) 
    .range([0, 500]); 

var brush = d3.svg.brush() 
    .x(xScale) 
    .on('brushstart', function() { 
     this.brushStart(); 
    }) 
    .on('brushend', function() { 
     this.brushEnd(); 
    }) 
    .extent([100, 300]); 
: I 이런 brush.extent를 ([VAL1, val2만큼]) 설정 https://github.com/mbostock/d3/wiki/SVG-Controls

xAxis에서 브러시 영역이 100에서 200까지 표시됩니다 (브러시가 보이고 올바른 위치에 있음). 내가 d3.time.scale을 사용하고 때

불행하게도() 전혀 작동하지 않습니다

var xScale = d3.time.scale() 
    .domain(data) 
    .range([0, 500]); 

var brush = d3.svg.brush() 
    .x(xScale) 
    .on('brushstart', function() { 
     this.brushStart(); 
    }) 
    .on('brushend', function() { 
     this.brushEnd(); 
    }) 
    .extent([100, 300]); 
    // or 
    // .extent(['2013-08-01T00:00:00Z', '2013-08-10T23:59:59Z']); 
    // or 
    // .extent(['2013-08-01 00:00:00', '2013-08-10 23:59:59']); 
    // or even 
    // .extent([new Date(2013, 8, 1, 00, 00, 00), new Date(2013, 8, 10, 23, 59, 59)]); 

그것은 닦았 영역을 표시하지 않습니다.

d3.time.scale()을 사용할 때 브러시 영역을 설정하는 방법은 무엇입니까?

물론 데이터에는 마진이있는 경우에도 브러쉬 처리 할 수있는 날짜 범위가 있습니다.

마리우스

답변

10

나는 문제와 해결책을 발견했다.

내가 사용 기능 :

var parseDate = d3.time.format('%Y-%m-%d %H:%M:%S').parse; 

모든 형식 YYYY-MM-DD HH 오리지널되는 데이터 값을 처리하는 데 :

동안은 brush.extent 설정 SS ([: mm를

brush.extent([parseDate(val1), parseDate[val2]]); 

MARIUSZ

: VAL1은을 val2]) I 동일한 parseDate() 함수를 사용할 필요