【问题标题】:The links between the nodes in Force-Directed Graph in D3 JavascriptD3 Javascript中Force-Directed Graph中节点之间的链接
【发布时间】:2013-11-21 19:34:43
【问题描述】:

我正在使用 D3 Javascript 制作一个基本上包含至少 150 个节点的图表。思路可以这样描述:

一个节点连接到 100 个节点。 这 100 个节点中的 49 个节点与其他 49 个节点相连。

让我们澄清一下。我认识100个人。其中49人过生日。每个代表一个节点。

通过这种方式,我可以设法通过 Javascript 中的一些数组使用 sourcetarget 将它们链接在一起。我认为我在 D3 中的 Force-Directed Graph 中遗漏了一些非常重要的东西。据我所知,链接可以用sourcetarget 实现。我的问题是我无法理解如何将这些链接链接到这些节点。我不知道在什么基础上我可以创建一个数组来保存我的名字、人们的名字和他们的生日,这样它们就可以链接在一起。在我的图表中,它给了我正确的人但错误的生日。任何人都可以指导我如何处理这件事。我正在关注本教程:但无法理解如何创建一个数组来添加以下信息:姓名、人名和生日。

http://bl.ocks.org/mbostock/4062045

非常感谢您的帮助。

【问题讨论】:

  • 恐怕您需要在jsfiddle 或其他带有一些模拟数据的地方发布您迄今为止所尝试的内容,以便我们为您提供指导。
  • 问题是我有大量的数据。我会尽力做到这一点。

标签: javascript graph d3.js


【解决方案1】:

节点和链接的链接方式是通过索引。也就是说,如果target: 0,则意味着该链接的目标节点是节点列表中的第一个,如传递给强制布局。您可以将所需的任何数据添加到链接和节点——对于链接,节点也可通过link.sourcelink.target 获得。

或者,您可以将链接的源和目标指定为对象本身——这实际上是 D3 在将链接传递给强制布局时在内部执行的操作。由于它不能与索引一起使用,它们被替换为解析的节点对象(这就是您可以通过链接访问实际对象的原因)。

如果您通过外部数据(例如 JSON)指定图形结构,那么您应该使用索引来识别链接中的节点。如果您在 Javascript 中生成数据结构,则可以使用对实际对象的引用。

【讨论】:

  • 拉尔斯。你的回答总是有帮助的。实际上我正在从 JSON 文件中检索数据并将它们放入数组中。之后,我将应用您在答案开头所解释的内容。同时,如果您能通读我的代码,我将不胜感激。我将尝试向您发送一些我的代码示例。在这种情况下,您认为源和目标可以通过我存储节点的数组的索引来定义吗?!
  • 您的问题的答案几乎肯定是肯定的,但是一旦我看到您的代码,我应该能够更明确地回答。
  • 如何向您展示我的代码?有没有可能这样做?
  • 如果你不想在这里发,你可以给我发邮件。
  • 我会这样做的。非常感谢你,Lars 的支持。我现在会关注你的回答,希望我能得到一些结果,然后通过电子邮件将文件发送给你。
猜你喜欢
  • 2015-03-18
  • 2013-04-27
  • 2017-06-18
  • 2012-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多