【问题标题】:How to set Minimum Radius for Circle Pack in D3JS?如何在 D3JS 中设置圆形包的最小半径?
【发布时间】:2017-02-20 06:20:06
【问题描述】:

谁能指导我如何修改https://bl.ocks.org/mbostock/4063269,使圆具有最小半径?

如果圆圈的半径非常小,它们的内部文本会被隐藏,我想避免这种情况。

【问题讨论】:

标签: javascript d3.js data-visualization


【解决方案1】:

您可以使用不同的方法设置圆圈的最小尺寸。这个答案涉及pack.radius

如果指定了半径,则将包布局的半径访问器设置为指定的函数并返回此包布局。

首先,我们设置一个比例。可以看到这里的最小值是20(最大值是50):

var sizeScale = d3.scaleSqrt()
   .range([20,50]);

然后,我们在pack.radius 中使用该比例:

pack.radius(d=>sizeScale(d.value));        

这是一个使用您链接的相同代码的演示,来自 Mike Bostock:https://bl.ocks.org/anonymous/9590a06db119c7a67acdfd3c5b5f1e0a

【讨论】:

  • 我在写这个答案时感觉不太舒服,因为这个问题涉及我真正关心的事情:用数据说实话......或者更好的是,不要用数据撒谎。改变圆圈的大小只是为了显示文本是一种谎言,因为圆圈的大小会编码信息。
最近更新 更多