Я использую d3.stack для создания диаграммы с разбивкой по областям, но получаю сообщение об ошибке, если у меня нет одинакового количества элементов на каждом уровне. Я начинаю с массива данных вроде этого:
[
{key:'Group1',value,date},
{key:'Group1',value,date},
{key:'Group1',value,date},
{key:'Group2',value,date},
{key:'Group2',value,date}
]
и после того, как я запустил его через nest() и stack(), я получаю этот формат, как и ожидалось:
[
{key: 'Group1',
values: [ {key,value,date}, {key,value,date}, {key,value,date} ] },
{key: 'Group2',
values: [ {key,value,date}, {key,value,date} ] }
]
Я немного изменил образец уложенной области, чтобы продемонстрировать проблему в этом jsFiddle: http://jsfiddle.net/brentkeller/rTC3c/2/
Если вы удалите любую из точек данных в массиве sourceData, вы увидите сообщение об ошибке "Невозможно прочитать свойство" 1 "из undefined" в консоли.
Есть ли способ, чтобы d3.stack просто принимал нулевые значения для отсутствующих точек данных? Если нет, есть ли элегантное решение для заполнения недостающих значений?