使用 d3 在两个节点之间绘制多条边

2024-05-02

我一直在关注 Mike Bostock 的代码这个例子 http://bl.ocks.org/1153292学习如何在 d3 中绘制有向图,并且想知道如何构建代码,以便可以在图中的两个节点之间添加多个边。例如,如果上例中的数据集定义为

var links = [{source: "Microsoft", target: "Amazon", type: "licensing"},
             {source: "Microsoft", target: "Amazon", type: "suit"},
             {source: "Samsung", target: "Apple", type: "suit"},
             {source: "Microsoft", target: "Amazon", type: "resolved"}];

然后运行代码,我看到的只是一行。所有路径都在 html 代码中正确绘制,但是它们都具有相同的坐标和方向,这导致视觉效果看起来像 1 条线。在这个例子中需要进行什么样的代码重组才能允许 3 个边不被绘制在彼此之上?


事实上,原始可视化是显示节点之间多个链接的一种方法的主要示例,即使用弧而不是直接路径,因此您可以看到传入和传出链接。

通过更改后续的半径值,可以扩展此概念以显示每种类型的链接的多个svg路径(圆弧) http://www.w3.org/TR/SVG/paths.html#PathDataEllipticalArcCommands代表链接的元素。一个基本的例子是

dr = 75/d.linknum;

Where d.linknum表示连续链接的编号。dr稍后用作正在绘制的弧的 rx 和 ry 量。

完整的实现在这里:http://jsfiddle.net/7HZcR/3/ http://jsfiddle.net/7HZcR/3/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 d3 在两个节点之间绘制多条边 的相关文章

随机推荐

  • 如何使用谷歌趋势查找编程语言流行总体趋势的统计数据

    我喜欢关注趋势浏览器 操作系统 语言等 我发现谷歌趋势是一个非常有用的资源有时但有时我无法获得我想要的信息 与多年来其他主要 Linux 发行版相比 Ubuntu 的增长非常明显 在发布日期附近有 6 个月度峰值 由于非编程相关事件而出现偏
  • 为什么在“if False:”块中注释赋值语句会导致差异“NameError”消息?

    如果我评论了baz 4中的声明if False 阻止我收到消息NameError name baz is not defined否则我收到消息NameError free variable baz referenced before ass
  • 从 MySQL 转储中删除 DEFINER 子句

    我有一个数据库的 MySQL 转储 其中有 DEFINER 子句 如下所示 DEFINER root localhost 也就是说 这些 DEFINER 子句位于我的 CREATE VIEW 和 CREATE PROCEDURE 语句中 有
  • 使用 sed 反转输入顺序

    我有一个文件 我们将其命名为 a txt 该文件包含以下文本行 do to what 我想知道 SED 命令是什么来反转此文本的顺序 使其看起来像 what to do 我必须做某种追加吗 就像将 do 附加到 to 所以它看起来像 to
  • 寻找使用库版本的方法?

    我正在通过库在多个电子表格上部署脚本 但正如您所知 脚本 目前 还无法知道它是否正在运行最新版本 我试图通过为我的代码创建自己的版本控制来找到解决此问题的方法 我有一个 Web 服务返回我的库代码的最新版本号 以便我可以对其进行比较 但 o
  • 使用更新面板时服务器控件丢失其 CSS 样式

    我在用我的项目的模板 我在表单中使用了 updatepanel 在更新面板中我采用了 asp net 的不同下拉列表控件 现在的问题是 当页面回发时 应用于下拉列表的 css 样式会丢失 因为我对 CSS 没有详细的了解 所以请帮助 现在有
  • 在 re.sub 中使用变量,以便 Python 解析多个日期时间格式字符串?

    我试图想出一个函数来将各种人类日期 时间格式字符串转换为Python兼容的字符串 来自 yyyy MMM dd to Y b d 到目前为止 我构建了下面的翻译字典 元组列表 yyyy Y MMM b 这样我可以将输入格式字符串中的占位符字
  • 获取运行时权限错误 E/Minikin: addFont 未能创建字体 /system/fonts/NanumGothic.ttf

    我在 google 和 stackoverflow 上搜索了很多 我得到了这个错误 E Minikin addFont 无法在片段中创建字体 system fonts NanumGothic ttf 之后重新加载片段 请帮我解决这个问题 在
  • redux 减速器类型“从不”

    我想使用 useSelector 来选择 rootStore 的正确状态 但无法正确获取状态 原因是主题缩减器根状态给我类型never export type RootState ReturnType
  • 忽略 Xamarin.Forms (PCL) 中的 SSL 证书错误

    有没有办法做类似这里描述的事情 https stackoverflow com a 2675183 https stackoverflow com a 2675183但在 Xamarin Forms PCL 应用程序中 我正在使用 Http
  • Pandas 旋转一列,同时使用与列标题相同的列值

    我想在数据框中旋转一列 其中列值成为列标题 而这些列的实际值成为1 or 0 例子 movie id cluster id answer id 0 73 1 4 1 80 1 5 4 81 1 2 7 84 1 1 10 88 1 1 11
  • google Drive api 是否支持 2 足 oauth?

    现在 我们有一个带有 Google Docs Api 和 2 条腿的 oauth 的应用程序 但是 我们希望迁移到使用 Oauth 2 0 的 Google Drive Api 我们可以将 2 条腿的 oauth 与 Google Driv
  • 如何在工作项更改事件中获取对 TFS 工作项的引用?

    看起来这非常简单 但我正在努力寻找我需要的东西 我正在实现一个 TFS 2013 事件处理程序 并且只想获取对引发更改事件的工作项的引用 获取标题似乎很容易 但我在事件签名对象中找不到属性或方法来为我提供对 WorkItem 对象的引用或查
  • Azure Pipelines 中的 NG 构建失败,出现 NPM 错误 134

    大约 50 的托管构建失败 并出现 npm 错误 134 我正在使用托管 vs2017 构建具有相同构建定义的相同提交 我正在使用 Angular CLI 构建 Angular 应用程序 npm 任务调用 run build 它在我的 pa
  • TypeScript GUID 类? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有谁知道在 TypeScript 中像 GUID UUID 这样的 C 的良好 可靠的实现吗 我自己可
  • 当用户控件可见时将焦点设置到它

    I am showing a MessageBox and want the user to be able to copy the contents of the message using CTRL C The problem is t
  • 如何在应用程序启动时获取当前的 Facebook 访问令牌?

    在应用程序启动时 我需要知道用户是否已登录或未显示登录页面 我的第一次尝试是打电话AccessToken getCurrentAccessToken 但这不起作用 请参阅https stackoverflow com a 29854249
  • iOS 相机视频实时预览与拍摄的照片有偏移

    我正在使用相机工作 相机以实时反馈的形式呈现给用户 当用户单击时 就会创建图像并将其传递给用户 问题是图像被设计为位于最顶部位置 该位置高于实时预览显示的位置 您知道如何调整相机的框架 使实时视频的顶部与他们要拍摄的照片的顶部相匹配吗 我以
  • Apksigner 不验证签名

    我试图使用 apksigner 验证最新 Gmail 应用程序 版本 8 11 25 224 的签名 但失败了 I used apksigner verifiy verbose print certs
  • 使用 d3 在两个节点之间绘制多条边

    我一直在关注 Mike Bostock 的代码这个例子 http bl ocks org 1153292学习如何在 d3 中绘制有向图 并且想知道如何构建代码 以便可以在图中的两个节点之间添加多个边 例如 如果上例中的数据集定义为 var