2015-03-09 9 views
5

Ich möchte eine erste Bereichsauswahl in einigen dc.js-Diagrammen (Balken und Zeile) vornehmen.
So füge ich das zum Beispiel:Anfängliche Bereichsauswahl in DC.js-Diagramm

.filter([7,10]) 

Und der Bereich erscheint auch auf der Karte, aber anscheinend 0 Beobachtungen ausgewählt sind.
Ich erwartete ein paar tausend Beobachtungen ausgewählt. Wie wenn ich den Bereich [7,10] manuell mit dem Pinsel wähle.

Irgendein Hinweis darauf, was mir hier fehlt?

Teil meines Code:

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

Antwort

9

Der Filtercode ist ein bisschen schwierig in dc.js. Wenn Sie ein Array mit Werten angeben, wird das Array nicht als Bereich interpretiert. (Es wird entweder das Array als ein einzelner Wert interpretieren, oder wenn das Array ein anderes Array enthält, it will filter on the values inside that array.)

Versuchen ein ranged filter object statt Angabe:

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