Невозможно отобразить наибольшее значение при использовании 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) во время настройки, поскольку оно будет рассчитываться при каждом построении графиков, а не только один раз, что, вероятно, вам и нужно.

Другие вопросы по тегам