Я пытаюсь построить столбчатую диаграмму с накоплением в D3js. У меня проблемы с правильной установкой атрибутов y
и y0
и рисованием полос на их правильных позициях. Возможно, у меня есть ошибка в расчетах, но я не могу ее найти. Это ссылка на пример кода FIDDLE. Сценарий следующий:
- Сначала я группирую данные по «периодам», и эти периоды отображаются на xAxis.
- Затем у меня есть группировка по "типу" - МЕСЯЦ и ВХОД, которые должны быть сложены столбиками разного цвета.
- Сумма «сумма» для каждого типа за каждый период отображается на yAxis.
Я использую функцию гнезда с двумя клавишами для структурирования данных. Проблема возникает, когда я рисую столбцы на фактической гистограмме с накоплением. Я не уверен, заключается ли проблема в способе доступа к данным (ключ и значения) или в том, как я устанавливаю атрибуты «y» и «height».
selection.selectAll("rect")
.data(function (d) { return d.values; })
.enter().append("rect")
.attr("width", x.rangeBand())
.attr("y", function (d) { return y(d.values); })
.attr("height", function (d) { return y(d.y0) + y(d.values); })
//.attr("height", function (d) { return y(d.y0) - y(d.values); })
.style("fill", function (d) { return color(d.key); })
Очевидные ошибки заключаются в том, что одна из полосок скрыта за другой. И вторая полоса находится под xAxis.
Я новичок в d3js и не могу найти решение. Кто-нибудь может мне помочь?