DC.js вычисление означает в соответствии с измерением

1

У меня есть набор данных, который выглядит примерно так:

MONTH    CAT   VAL
may      A     1.0
may      B     3.2
may      C     4.6
jun      A     2.7
jun      B     4.2
jun      C     5.8
jul      A     4.1
jul      B     9.2
jul      C     13.0

Я смог создать диаграмму в DC.js, которая отображает сумму VAL в соответствии с переменной CAT, с помощью этого кода:

let chart = dc.barChart('#chart');

let ndx = crossfilter(data);

let catDim = ndx.dimension(function(d){return d.cat;});
let catGroup = catDim.group().reduceSum(function(d){return +d.val;}); 

chart
    .dimension(catDim)
    .group(catGroup)
    .x(d3.scale.ordinal().domain(catDim))
    .xUnits(dc.units.ordinal)
    .elasticY(true)

Моя проблема заключается в том, что вместо суммы я хотел бы показать в графе среднее значение VAL за месяц для каждого CAT (MONTH можно отфильтровать на другом графике).

Есть ли способ сделать это?

Заранее благодарю за ваши ответы!

Теги:
d3.js
dc.js
crossfilter

1 ответ

0

Поэтому вместо того, чтобы использовать crossfilter, чтобы "просто" отслеживать сумму, используйте пользовательский снимок, который отслеживает как сумму, так и количество элементов, и добавляет valueAccessor для возврата x.value.sum/x.value.qty

Я бы предложил вам использовать reductio для обработки пользовательского сокращения, проверьте примеры, у вас есть один для среднего.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню