1

是否可以使用 d3js 包布局来调整父圈子的大小,而与它包含的子圈子无关?

我正在使用 d3js 包布局来显示圆圈的层次结构。每个圆圈代表一个销售组。嵌套在其中的圆圈是子销售组。每个组都有一个由圆半径表示的总销售额。每个群体,包括父母,都可以有自己的销售额。

我意识到比例可能不准确,但我还想调整父圆的半径以表明父组有自己的销售额。

我目前正在设置独立于子级的父级大小,但这似乎被忽略了,因为父级半径由它包含的子级决定。

是否可以在包布局中调整父半径?

我确实看到了这个类似的问题:

D3JS 打包的圆形布局,相对于父级的填充

但它没有一个确定的答案。

4

1 回答 1

1

圆的位置和半径由pack.nodes()函数计算并返回。通常,您会将其直接提供给.data()函数,然后根据它绘制元素,但没有什么能阻止您更改返回值。的返回值的每个元素pack.nodes()都有一个属性parent,如果它是顶级圆,则该属性将为 null 和一个r确定半径的属性。

实现您想要的最简单的方法是简单地更改包布局返回的顶级圆的半径。也就是说,遍历节点数组并更改半径(如果parent为空)。

于 2013-04-28T09:50:10.050 回答