2015-03-09 11 views
5

Chciałbym dokonać wstępnego wyboru zakresu w niektórych wykresach dc.js (pasek i linia).
Więc dodam to na przykład:Początkowy wybór zakresu w wykresie DC.js

.filter([7,10]) 

a zakres pojawia się również na wykresie, ale widocznie 0 obserwacje są zaznaczone.
Spodziewałem się kilku wybranych obserwacji. Tak jak wtedy, gdy ręcznie wybieram zakres [7,10] ręcznie za pomocą pędzla.

Jakąkolwiek wskazówkę na temat tego, czego tu brakuje?

Część mojego kodu:

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

Odpowiedz

9

Kod filtr jest nieco kłopotliwe w dc.js. Jeśli podasz tablicę wartości, nie będzie ona interpretować tablicy jako zakresu. (Będzie to albo zinterpretować tablicę jako pojedyncza wartość, lub jeśli tablica zawiera inną tablicę, it will filter on the values inside that array.)

spróbuj podać ranged filter object zamiast:

.filter(dc.filters.RangedFilter(7, 10)) 
Powiązane problemy