2015-03-09 1 views
5

Я хотел бы сделать начальный выбор диапазона в некоторых диаграммах dc.js (строка и строка).
Так я добавляю это, например:Начальный выбор диапазона в диаграмме DC.js

.filter([7,10]) 

И диапазон появляется хорошо на графике, но по-видимому, выбраны 0 наблюдения.
Я ожидал, что будет выбран несколько тысяч наблюдений. Как и при выборе диапазона [7,10] вручную с помощью кисти.

Любой намек на то, что мне не хватает здесь?

Часть моего кода:

var chart_globalscore = dc.barChart('#chart_globalscore'); 
(...) 
    var ndx = crossfilter(data_movies) 
     ,all = ndx.groupAll() 
(...) 
     ,GlobalScoreDimension = ndx.dimension(function(d) { if (!isNaN(d.GlobalScore)) {return Math.round(d.GlobalScore*10)/10 ;} else {return -1;} }) 
     ,GlobalScoreGroup = GlobalScoreDimension.group() 
(...) 
     ; 
(...) 
    chart_globalscore 
     .width(width001) 
     .height(height001) 
     .margins(margins) 
     .dimension(GlobalScoreDimension) 
     .group(GlobalScoreGroup) 
     .round(function(val){return Math.round(val*10)/10;}) 
     .x(d3.scale.linear().domain([0, 10.1])) 
     .filter([7,10]) 
     .centerBar(false) 
     .transitionDuration(transitionDuration) 
     .elasticY(true) 
     .gap(1) 
     .xUnits(function(){return 100;}) 
     .renderHorizontalGridLines(true) 
     .yAxis().ticks(2) 
     ; 

ответ

9

Код фильтра немного сложнее в dc.js. Если вы укажете массив значений, он не будет интерпретировать массив как диапазон. (Это будет либо интерпретировать массив как одно значение, или если массив содержит другой массив, it will filter on the values inside that array.)

Попробуйте указываемый ranged filter object вместо:

.filter(dc.filters.RangedFilter(7, 10))