Невозможно отобразить наибольшее значение при использовании crossfilter.js
Я пытаюсь отобразить верхнее значение, найденное crossfilter, в dc.js, но получаю
Uncaught TypeError: _chart.group(...). Значение не является функцией
Любая помощь?
Это мой код
var ndx = crossfilter(projectsJson);
var highPriceDim = ndx.dimension(function(d) { return d.High; });
var highGrp = highPriceDim.top(1);
console.log(highGrp);
var highGrpND = dc.numberDisplay("#max-price-nd");
highGrpND.group(highGrp)
.formatNumber(d3.format("d"))
.valueAccessor(function(d){return d ; })
.formatNumber(d3.format(".4f"));
Спасибо за любую помощь
2 ответа
highGrp это массив. Вместо этого попробуйте highGrpND.group(highGrp[0]).
Вы должны быть в состоянии просто сделать
highGrpND.group(highPriceDim.group())
так как numberDisplay будет искать либо value
метод или, если это не удалось, возьмите .top(1)
https://github.com/dc-js/dc.js/blob/develop/src/number-display.js#L81
(что-то вроде грязного дизайна, но эй, если он работает...)
Это лучше, чем вычисление top(1) во время настройки, поскольку оно будет рассчитываться при каждом построении графиков, а не только один раз, что, вероятно, вам и нужно.