d3-sankey-diagram按类型对齐链接

时间:2019-03-04 09:01:37

标签: d3.js sankey-diagram

我正在尝试使用Rick Lupton出色的d3-sankey-diagram库来绘制sankey图。在demo page 上,“ alignLinkTypes”用于在节点上对齐具有相同类型的链接,但是自2017年11月以来,此关键字不再起作用; https://github.com/ricklupton/d3-sankey-diagram/commits/master/src/sankeyLayout/link-ordering.js。但是,应该可以使用端口来完成相同的事情。

我试图搜索自述文件,Wiki和源代码来寻找答案,但是我还没有找到答案。

有人可以告诉我如何对齐演示中的链接类型吗?

1 个答案:

答案 0 :(得分:0)

很高兴您发现该库很有用! (我是作者)

很遗憾,正如您所发现的,演示页面已过时。 Here is an exampleipysankeywidget中使用新的API(带有“端口”,这是一种更灵活的控制对齐方式):

function alignLinkTypes(layout, align) {
  return layout
    .sourceId(function(d) { return { id: typeof d.source === "object" ? d.source.id : d.source,
                                     port: align ? d.type : null }; })
    .targetId(function(d) { return { id: typeof d.target === "object" ? d.target.id : d.target,
                                     port: align ? d.type : null }; });
}

如果align为真,则指示布局在标识链接的起点和终点时同时考虑链接的sourcetype(旧的“ alignLinkTypes”行为);否则,仅考虑sourcetarget