D3 Bubble示例:bubble.nodes()有什么作用?

kra*_*tsg 7 javascript svg json d3.js circle-pack

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

在此输入图像描述

我很难理解第16行发生的事情:

.data(bubble.nodes(classes(json))
Run Code Online (Sandbox Code Playgroud)

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

如果我添加一个

console.log(classes)
Run Code Online (Sandbox Code Playgroud)

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

kra*_*aya 1

classes() 函数不添加属性......它只是压平树。这些属性被添加到 bubble.nodes() 内部(即 d3.layout.pack().nodes())

JSON.stringify(classes[0])
"{"packageName":"cluster","className":"AgglomerativeCluster","value":3938}"
Run Code Online (Sandbox Code Playgroud)