gpt4 book ai didi

javascript - D3 气泡示例 : What does bubble. nodes() 做什么?

转载 作者:数据小太阳 更新时间:2023-10-29 04:48:26 25 4
gpt4 key购买 nike

示例:http://mbostock.github.com/d3/ex/bubble.html

enter image description here

我很难理解第 16 行发生了什么:

.data(bubble.nodes(classes(json))

为什么,或者在 classes() 函数中,变量 classes[] 获得为其每个对象定义的 x、y、r 值。另外,bubble.nodes() 似乎不是一个实际的函数?

如果我添加一个

console.log(classes)

在第 44 行和第 45 行之间 - 内部的每个对象似乎都已经填充了 x,y,r - 但不清楚为什么会发生这种情况。

最佳答案

bubble.nodes() 的调用归结为对 d3.layout.pack().nodes() 的调用自 bubble=d3.layout.pack()。诀窍是 pack.nodes() 被硬编码为使用输入的 children(在本例中为所有包)的 value 键来调整节点大小(添加 r)并确定位置(添加 xy)。

本质上,

 var root = {"children": [
{"packageName":"cluster","className":"AgglomerativeCluster","value":3938},
{"packageName":"cluster","className":"CommunityStructure","value":3812},
{"packageName":"cluster","className":"HierarchicalCluster","value":6714},
{"packageName":"cluster","className":"MergeEdge","value":743}
]}; // This is an excerpt of the real data.

var bubble = d3.layout.pack();

// pack.nodes() assigns each element of "children" a r, x, and y based on value
bubble.nodes(root);

一开始这也让我感到困惑,你可以看到 classes() 没有添加 rxy 因为 classes(root) 没有这些属性。 krasnaya 的回答触及了大部分内容,但我觉得它需要更多解释(至少对我来说是这样)。

关于javascript - D3 气泡示例 : What does bubble. nodes() 做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11530748/

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