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

问题描述 投票:1回答:1

我正在尝试使用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。但是,它应该可以使用端口完成相同的事情。

我试图搜索自述文件,维基和源代码以获得答案,但我还没有找到答案。

有人能告诉我如何在演示中对齐链接类型吗?

d3.js sankey-diagram
1个回答
0
投票

很高兴你发现图书馆很有用! (我是作者)

不幸的是,正如您所发现的,演示页面已过时。在Here is an example中使用新API(带有“ports”,这是一种更灵活的控制对齐方式)的ipysankeywidget

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为真,则告诉布局在识别其起点和终点(旧的“alignLinkTypes”行为)时要考虑链接的sourcetype;否则只考虑sourcetarget

© www.soinside.com 2019 - 2024. All rights reserved.