crossfilter.js - гистограмма с пользовательской функцией уменьшения не в состоянии фильтровать данные - PullRequest
0 голосов
/ 05 июля 2018

следующая ситуация: у меня есть два графика, один график рассеяния и одна гистограмма для значений x в этом графике рассеяния. Я написал пользовательскую функцию сокращения, которая выглядит примерно так:

       let grouping = this._cf_dimensions[attribute].group().reduce(
        function(elements, item) {
           elements.items.push(item);
           elements.count++;

           return elements;
        },
        function(elements, item) {
                // console.log("item.id = " + item.id);
                let match = false;
                let values = [];
                for (let i = 0; i < elements.items.length && !match; i++) {
                    // Compare hyperparameter signature.
                    if (item.id === elements.items[i].id) {
                        match = true;
                        elements.items.splice(i, 1);
                        elements.count--;
                    }
                }
            }

            return elements;
        },
        function() {
            return {items: [], count: 0};
        }
    );

Проблема: когда я выбираю точки на графике рассеяния, коррелирующая гистограмма не обновляется должным образом. Я проследил это до функции удаления, т.е. е. вторая из трех функций, приведенных выше, вызывается только для одной из моих пяти групп (я проверил путем сравнения длины elements с исходным размером группы). Это означает, что item, которые будут удалены, не обязательно будут найдены. Другими словами, диаграмма рассеяния выбирает правильный набор точек данных, но функция удаления в показанной выше групповой диаграмме при регистрации входящего обновления фильтра не вызывается для всех групп этой группировки (эквивалентно: не вызывается для всех баров в гистограмма).

Я немного растерялся, так как, похоже, помню, как успешно реализовывал панели мониторинга с dc.js и crossfilter.js и прошлым, точно так же, как это. Не понимаю ли я что-то о концепции обычного уменьшения или есть что-то очевидное, что я упускаю из виду?

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...