D3.js 如何在d3js v5中创建具有可变半径的蜂群图?

D3.js 如何在d3js v5中创建具有可变半径的蜂群图?,d3.js,D3.js,作为参考,具有可变半径的蜂群图如下所示: Mike使用d3版本5创建。但是,所有数据点的半径必须相同: 在d3 v5中制作变点半径蜂群图容易吗?我在d3版本3中做了,很好奇是否有更新的示例。 D3V5中的ObservableHQ图在概念上与D3V3示例不同。具体来说,它用一个定制的dodge功能取代了D3部队布局模拟。代码要简单得多,因为它可以假设所有粒子都有固定的半径,这使得模拟变得相当容易。换句话说,我不认为有一种简单的方法可以移植新的代码样本来处理可变半径 然而,更简单的方法是使用您编

作为参考,具有可变半径的蜂群图如下所示:

Mike使用d3版本5创建。但是,所有数据点的半径必须相同:

在d3 v5中制作变点半径蜂群图容易吗?我在d3版本3中做了,很好奇是否有更新的示例。

D3V5中的ObservableHQ图在概念上与D3V3示例不同。具体来说,它用一个定制的
dodge
功能取代了D3部队布局模拟。代码要简单得多,因为它可以假设所有粒子都有固定的半径,这使得模拟变得相当容易。换句话说,我不认为有一种简单的方法可以移植新的代码样本来处理可变半径

然而,更简单的方法是使用您编写的v3代码,并使其与D3V5一起工作,我在本文中使用D3V5函数完成了这项工作。主要的变化是

  • 编写库函数,而不是使用自定义函数
    collide
    gravity
    来检测碰撞并应用粒子效果。这消除了读取
    event.alpha
    变量的需要,该变量在v5中不再作为tick函数的回调函数提供
  • 将多个函数从v3重命名为v5等效函数,例如
    scaleLinear
    axisBottom
我曾经构建过这个修改过的代码示例