将StackBar图表从D3.js版本3转换为版本4的问题

时间:2018-04-20 06:32:21

标签: javascript d3.js

我正在尝试将带有工具提示(http://bl.ocks.org/mstanaland/6100713)的d3v3堆积条形图转换为d3v4。经过多次尝试仍然无法让图表在d3v4中运行。 目前我在将以下d3v3代码段更改为d4v3代码时遇到问题。任何人都可以帮助我。

// Transpose the data into layers
var dataset = d3.layout.stack()(["redDelicious", "mcintosh", "oranges", "pears"].map(function(fruit) {
    return data.map(function(d) {
        return {x: parse(d.year), y: +d[fruit]};
    });
}));

以下是为此任务裁剪的部分链接。 https://github.com/d3/d3/blob/master/CHANGES.mdhttps://github.com/d3/d3-shape/issues/93{d3.js} migration v3 to v4: code work on v3 (d3.layout.stack()) error v4 (d3.stack())

1 个答案:

答案 0 :(得分:1)

如果你不熟悉d3,我会亲自制作Mike Bostock的任何图表。

我基于this示例

这是我的结果从您的示例中获取数据(我假设您希望您的数据被硬编码)包括工具提示。

<强> Plunker

我必须做出的真​​正改变是:

.text(d[1] - d[0]);

在工具提示mousemove事件中,请查看changelog以及将来进一步版本转换。