Javascript d3.js如何正确地为树布局按摩我的数据?
我很难找到正确的方法来正确构造json数据,以实现d3.js所需的功能 我的内容是由“文章”组成的,在多对多的关系中有“标签”。 因此,一篇文章可以有几个标签,一个标签可以有几个文章 我希望将我的内容表示为节点树,方式如下: 但现在,标签和帖子被复制了好几次,例如: 如何避免标记和张贴重复,而是让线条指向正确的节点?还是有更好的方式格式化json数据以实现这种可视化 您可以在上看到我的代码正在运行。 以下是数据:Javascript d3.js如何正确地为树布局按摩我的数据?,javascript,json,d3.js,Javascript,Json,D3.js,我很难找到正确的方法来正确构造json数据,以实现d3.js所需的功能 我的内容是由“文章”组成的,在多对多的关系中有“标签”。 因此,一篇文章可以有几个标签,一个标签可以有几个文章 我希望将我的内容表示为节点树,方式如下: 但现在,标签和帖子被复制了好几次,例如: 如何避免标记和张贴重复,而是让线条指向正确的节点?还是有更好的方式格式化json数据以实现这种可视化 您可以在上看到我的代码正在运行。 以下是数据: var json_data= { "name": "Histoire
var json_data= {
"name": "Histoire du Web",
"children": [
{
"name": "américain",
"type": "tag",
"count": "1",
"children": [
{
"name": "jeff atwood",
"type": "article",
"count": 7
}
]
},
{
"name": "american",
"type": "tag",
"count": "2",
"children": [
{
"name": "Doug Englebart",
"type": "article",
"count": 5
},
{
"name": "jeff atwood",
"type": "article",
"count": 7
}
]
},
{
"name": "coding horror",
"type": "tag",
"count": "1",
"children": []
},
{
"name": "développeur",
"type": "tag",
"count": "1",
"children": [
{
"name": "jeff atwood",
"type": "article",
"count": 7
}
]
},
{
"name": "Engelbart's Law",
"type": "tag",
"count": "1",
"children": []
},
{
"name": "entrepreneur",
"type": "tag",
"count": "1",
"children": [
{
"name": "jeff atwood",
"type": "article",
"count": 7
}
]
},
{
"name": "forum",
"type": "tag",
"count": "1",
"children": [
{
"name": "jeff atwood",
"type": "article",
"count": 7
}
]
},
{
"name": "hypertext",
"type": "tag",
"count": "1",
"children": [
{
"name": "Doug Englebart",
"type": "article",
"count": 5
}
]
},
{
"name": "interaction",
"type": "tag",
"count": "1",
"children": [
{
"name": "Doug Englebart",
"type": "article",
"count": 5
}
]
},
{
"name": "mouse",
"type": "tag",
"count": "1",
"children": [
{
"name": "Doug Englebart",
"type": "article",
"count": 5
}
]
},
{
"name": "stackoverflow",
"type": "tag",
"count": "1",
"children": [
{
"name": "jeff atwood",
"type": "article",
"count": 7
}
]
}
]
};
在节点共享父节点的情况下,使用树布局表示数据并不容易,但是这是可能的,可以在此处找到详细说明: 从链接: 当然,可以应用一些残酷的黑客攻击,例如复制部分树以将多个父级转换为与单个父级相同的许多倍,但使用真正的图形布局机制(如d3.layout.force)并应用适当的约束使其执行所需操作可能是更好的选择