d3.js - d3-sankey-diagram 按类型对齐链接
问题描述
我正在尝试使用 Rick Lupton 出色的d3-sankey-diagram库来绘制 sankey 图。在演示页面上, “alignLinkTypes”用于在节点上对齐具有相同类型的链接,但自 2017 年 11 月起,该关键字不再起作用;https://github.com/ricklupton/d3-sankey-diagram/commits/master/src/sankeyLayout/link-ordering.js。但是,应该可以使用端口来完成同样的事情。
我尝试在自述文件、wiki 和源代码中搜索答案,但我还没有找到答案。
有人可以告诉我如何对齐演示中的链接类型吗?
解决方案
很高兴您发现该库很有用!(我是作者)
不幸的是,正如您所见,演示页面已过时。这是在ipysankeywidget中使用新 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
为真,则告诉布局在识别其起点和终点时同时考虑链接的 和 (旧的“alignLinkTypes”行为)source
;type
否则只考虑source
and target
。
推荐阅读
- swift - 等待两个完成处理程序?
- apache - .htaccess 301 将旧域重定向到新域,从托管根目录到子文件夹,但为什么?
- pentaho - Pentaho 报告:日期选择器参数未解析为用户控制台网页报告
- sql-server - 从上一行中选择计算值
- javascript - JavaScript 基于按钮单击隐藏/显示 DIV
- c++ - ros:控制台输出
- javascript - 在 HTML 中创建自定义形状区域
- javascript - 出现错误未捕获的错误:尝试在单元格中添加渲染器时单元格类型必须是字符串 Handsontable
- git - 无需推送即可保存提交
- sql-server - 我们可以从表中选择比所有列少一吗