Я пытаюсь создать общий кросс-фильтр, который может принимать в csv и создавать панель. Вот рабочие примеры:Как настроить twing для dc.js и crossfilter? Это узкое место в производительности?
- https://ubershmekel.github.io/gfilter/?dl=https://ubershmekel.github.io/csvData/spent.csv
- https://ubershmekel.github.io/gfilter/?dl=https://ubershmekel.github.io/csvData/Sacramentorealestatetransactions.csv
Но по какой-то причине полетных данных является медленным и отвечать на запросы. Сравните эти два, которые анализируют те же данные:
- https://ubershmekel.github.io/gfilter/?dl=https://ubershmekel.github.io/csvData/flights-3m.csv
- https://github.com/square/crossfilter
Я думаю, это потому, что гистограмма биннинга слишком детализирован, но я не могу найти хороший способ подправить, что в api ссылка. @gordonwoodhull mentioned:
Если биннинга неправильно вы действительно хотите посмотреть на то, как вы создали crossfilter - dc.js просто использует то, что дано.
Как настроить настройку перекрестного фильтра? Я пробовал возиться с xUnits, dimension
и group
округлением безрезультатно.
This is the problem code I suspect is slow/wrong:
var dim = ndx.dimension(function (d) { return d[propName]; });
if (isNumeric(data[0][propName])) {
var theChart = dc.barChart("#" + chartId);
var countGroup = dim.group().reduceCount();
var minMax = d3.extent(data, function (d) { return +d[propName] });
var min = +minMax[0];
var max = +minMax[1];
theChart
.width(gfilter.width).height(gfilter.height)
.dimension(dim)
.group(countGroup)
.x(d3.scale.linear().domain([min, max]))
.elasticY(true);
theChart.yAxis().ticks(2);
Crossfilter отдельная библиотека из dc.js - вы хотите настроить, как вы называете 'ndx.dimension()' и 'dim.group()'.К сожалению [документация довольно плотная] (https://github.com/square/crossfilter/wiki/API-Reference), но вы можете взять некоторые подсказки из [как они инициализируют размеры и группы для демонстрации crossfilter] (https: //github.com/square/crossfilter/blob/gh-pages/index.html#L231-L240) – Gordon
Прогресс на этом? – Laizer