gpt4 book ai didi

json - D3 填充圆形子图表,带有子数组的 JS mod

转载 作者:行者123 更新时间:2023-12-03 10:54:46 24 4
gpt4 key购买 nike

我有一个基于 Mike 演示的 D3 可缩放圆形图表:

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

在 D3 维基

https://github.com/mbostock/d3/wiki/Pack-Layout

我发现可以使用

pack.children([children])

为子级指定数组,是吗?

那么,在上面的演示中,有人如何使用它来解析相同的演示 JSON,但子级的键是“子类型”(或其他)而不是“子级”?如果这些 child 的 child 有不同的名字怎么办?

查看 D3 代码后,似乎 D3 真的想要为这些分层打包布局找到字面上的“子级”。

我可以忍受它,但感谢任何帮助来进一步我目前的 D3 潜水。

谢谢!

最佳答案

假设在您的耀斑数据中您的 child 收集的名字为鲍勃:

{
"name": "flare",
"bob": [
{
"name": "analytics",
"bob": [
{
"name": "cluster",
"bob": [
{"name": "AgglomerativeCluster", "size": 3938},
{"name": "CommunityStructure", "size": 3812},
{"name": "HierarchicalCluster", "size": 6714},
{"name": "MergeEdge", "size": 743}
]
},
{
"name": "graph",
"bob": [
{"name": "BetweennessCentrality", "size": 3534},
{"name": "LinkDistance", "size": 5731},
{"name": "MaxFlowMinCut", "size": 7840},
{"name": "ShortestPaths", "size": 5914},
{"name": "SpanningTree", "size": 3416}
]
...

修改很简单:

var nodes = pack.children(function(d){
return d.bob;
}).nodes(root);

现在如果你在每个级别都有不同的名字怎么办?首先,我认为这确实是一个糟糕的结构,您应该更改源数据。但如果你不能怎么办?也许这样的事情会起作用:

var nodes = pack.children(function(d){
if (d['children'] !== undefined){
return d['children'];
} else if (d['bob'] !== undefined){
return d['bob'];
}
}).nodes(root);

关于json - D3 填充圆形子图表,带有子数组的 JS mod,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28305833/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com