Добавление фильтра в dc.js / Crossfilter без обновления диаграммы

jsFiddle:http://jsfiddle.net/PYeFP/

У меня настроена гистограмма, которая отображает количество поездок пользователей за день

        tripVolume = dc.barChart("#trip-volume")
               .width(980) // (optional) define chart width, :default = 200
               .height(75) // (optional) define chart height, :default = 200
               .transitionDuration(0) // (optional) define chart transition duration, :default = 500
               .margins({ top: 10, right: 50, bottom: 30, left: 40 })
               .dimension(tripsByDateDimension) // set dimension
               .group(tripsByDateGroup) // set group
               // (optional) whether chart should rescale y axis to fit data, :default = false
               .elasticY(false)
               // (optional) whether chart should rescale x axis to fit data, :default = false
               .elasticX(false)
               // define x scale
               .x(d3.time.scale().domain([tripsByDateDimension.bottom(1)[0].startDate, tripsByDateDimension.top(1)[0].startDate ]))
               // (optional) set filter brush rounding
               .round(d3.time.day.round)
               // define x axis units
               .xUnits(d3.time.days)
               // (optional) whether bar should be center to its x value, :default=false
               .centerBar(true)
               // (optional) render horizontal grid lines, :default=false
               .renderHorizontalGridLines(true)
               // (optional) render vertical grid lines, :default=false
               .renderVerticalGridLines(true)
               .brushOn(false);

График отображается нормально, но я хотел бы отфильтровать его, используя некоторые элементы управления jQuery. Когда пользователь выбирает дату, когда я пытаюсь добавить фильтр на диаграмму, фильтр добавляется, но диаграмма не меняется, даже если яredraw() или жеrender().

Вот как настроен кроссфильтр:

tripsCx = crossfilter(data.rows);
var allTripsGroup = tripsCx.groupAll();

var tripsByDateDimension = tripsCx.dimension(function (d) { return d.startDate; });
var tripsByDateGroup = tripsByDateDimension.group(d3.time.day);

Ниже приведены некоторые методы, которые я использовал, чтобы попытаться применить фильтр:

Это должно использовать filterRange:

d.filter(d.dimension().top(20)[19], d.dimension().top(20)[0]);

FilterFunction:

d.filter(function (d) {
    return d.getTime() > start.valueOf() && d.getTime() < end.valueOf();
});

FilterExact:

d.filter(d.dimension().top(20)[0]);

Я также попытался обойти диаграмму и применить фильтр непосредственно к измерению:

d.dimension().filterFunction(function (d) {
  return d.getTime() > start.valueOf() && d.getTime() < end.valueOf()
});

Ничто из того, что я сделал, не приводит к изменению графика.

Я начинаю думать, что у меня неправильное ожидание того, что должна делать функция фильтра?

Как вручную отфильтровать данные в измерении, чтобы обновить диаграмму? Я не хочу использовать кисть. Я буду фильтровать данные, основываясь на разных критериях, я просто пытаюсь сначала разобраться с простым делом.

Я потратил пару дней на это сейчас, и я не знаю, что делать дальше.

Любая помощь будет принята с благодарностью.

Ответы на вопрос(1)

Ваш ответ на вопрос