我正在将Mike Bostock的原始Stacked Area Chart via Nest example转换为d3 v4,但在调用stack(nest.entries(data))
我在这里有一个有效的v3 codepen - https://codepen.io/lebadget/pen/ypLZpJ
这里破坏了v4 codepen - https://codepen.io/lebadget/pen/VywgxG
任何人都可以帮助我理解为什么v4为layers
返回一个空数组(第121行是它变坏的地方)。
更新:
我把它缩小到这个:
// v3
const groupedData = nest.entries(data);
var layers = stack(groupedData);
console.log('layers', layers);
"layers" [Object]
是的,它有效!
// v4
const groupedData = nest.entries(data);
var layers = stack(groupedData);
console.log('layers', layers);
"layers": []
没有
答案 0 :(得分:0)
我在D3群组线程中看到了您的问题请求,以便进行问题跟踪,并在此处查看了您的代码。
我的理解是Stack(D3 v4)需要将转置数据集传递给它。其中每行数据表示给定“堆栈”的所有值图,其中每个键都存在于该行对象上。在您的代码中,当您需要按行分组时,您可以按系列(Group1,Group2,Group3)分组数据。
查看Mike关于此的文档,特别是显示数据如何传递到堆栈的部分:
var data = [
{month: new Date(2015, 0, 1), apples: 3840, bananas: 1920, cherries: 960, dates: 400},
{month: new Date(2015, 1, 1), apples: 1600, bananas: 1440, cherries: 960, dates: 400},
{month: new Date(2015, 2, 1), apples: 640, bananas: 960, cherries: 640, dates: 400},
{month: new Date(2015, 3, 1), apples: 320, bananas: 480, cherries: 640, dates: 400}
];
https://github.com/d3/d3-shape/blob/master/README.md#_stack
干杯,
汤姆