Область с накоплением в D3.js

Я использую D3.js, и у меня возникают проблемы с настройкой макета с накоплением для диаграммы с областями с несколькими рядами. У меня есть две возможные структуры моих данных (, если это поможет ). Одним из них являются необработанные данные, подаваемые в сценарий, в этой структуре:

var data = [{key: 'Group1', value: 37, date: '04/23/12'},
           {key: 'Group2', value: 12, date: '04/23/12'},
           {key: 'Group3', value: 46, date: '04/23/12'},
           {key: 'Group1', value: 32, date: '04/24/12'},
           {key: 'Group2', value: 19, date: '04/24/12'},
           {key: 'Group3', value: 42, date: '04/24/12'},
           {key: 'Group1', value: 45, date: '04/25/12'},
           {key: 'Group2', value: 16, date: '04/25/12'},
           {key: 'Group3', value: 44, date: '04/25/12'},
           {key: 'Group1', value: 24, date: '04/26/12'},
           {key: 'Group2', value: 52, date: '04/26/12'},
           {key: 'Group3', value: 64, date: '04/26/12'}]

Вторая — это вложенная структура, созданная с помощью этого кода:

 pData = d3.nest()
           .key(function(d) { return d.key; })
           .map(data);

В результате получается эта структура:

pData = {Group1: [{date: 04/23/12, key: "Group1", value: 37}, 
                  {date: 04/24/12, key: "Group1", value: 32}, 
                  {date: 04/25/12, key: "Group1", value: 45},
                 ...],
         Group2: [{date: 04/23/12, key: "Group2", value: 12},
                  {etc, etc, etc}],
         GroupX: [...] }

Мои вопросы:Как настроить генератор d3.layout.stack(), используя одну из приведенных выше структур данных (или некоторые варианты ), чтобы создать структуру с накоплением для моих данных, чтобы я мог передать ее генератору областей, подобному этому:

var areaGenerator = d3.svg.area()
   .interpolate('monotone')
   .x(function(d) { return x(d.date); })
   .y0(h)
   .y1(function(d) { return y(d.value); });
7
задан Brian Tompsett - 汤莱恩 24 December 2015 в 21:15
поделиться