首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从节点构建链路的D3.js?

问从节点构建链路的D3.js?
EN

Stack Overflow用户
提问于 2014-02-14 05:59:17
回答 2查看 3K关注 0票数 1

我指的是这里的例子。。

我无法理解d3.js如何从节点创建链接。让我解释一下我所理解的:我们有一个根,js对象从表示json的文件中读取;我们递归地获取节点并提供ids。但后来发生了一些我不明白的部分。d3.layout.tree().links函数如何返回链接?我们只传递节点到函数,也就是is,以及节点的坐标?

代码语言:javascript
复制
    d3.json("graph.json", function(error, json) {
    root = json;
    update();
    });
    function update() {
    var nodes = flatten(root), 
    links = d3.layout.tree().links(nodes);
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-14 08:49:19

树布局通过采用分层数据结构(在JSON中指定)并使链接显式来构造链接。JSON中的节点具有一个children属性,该属性隐式地指定连接哪些节点。节点被连接到他们的子节点,而这些节点又连接到他们的孩子和他们的父节点。这是树布局用来计算链接的信息。

文档说:

给定指定的节点数组(如节点返回的节点),则返回表示每个节点从父节点到子节点的链接的对象数组。叶节点将没有任何链接。每个链接都是一个具有两个属性的对象: 源-父节点(如上文所述)。 目标-子节点。 这种方法对于检索一组适合显示的链接描述是有用的。

请注意,使用children属性来存储子属性只是默认的,如果您愿意,可以进行更改。

票数 3
EN

Stack Overflow用户

发布于 2014-02-14 06:12:03

在update()函数中,links = d3.layout.tree().links(nodes);在“选择”树中的节点以及它们在JSON文件中的指定链接。

我认为这里的关键是JSON文件中的,不仅应该有节点,而且还应该有指定的链接。否则,人们只会得到节点。我认为此页也应该提供帮助。

至于代码后面发生了什么,如果有用的话,请阅读.

稍后,link = link.data(links, function(d) { return d.target.id; });更新到树的现有链接。

稍后,下面的代码块进入可视化中当前未出现的新链接。

代码语言:javascript
复制
// Enter any new links.
  link.enter().insert("line", ".node")
      .attr("class", "link")
      .attr("x1", function(d) { return d.source.x; })
      .attr("y1", function(d) { return d.source.y; })
      .attr("x2", function(d) { return d.target.x; })
      .attr("y2", function(d) { return d.target.y; });

我希望这能帮到你!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21771899

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档