2

我正在尝试制作类似于Mike Bostock 的气泡图:

在此处输入图像描述

但是,我希望为 json 生成节点,而不是随机生成节点。假设我有dataset一个有效的 JSON 变量,我如何nodes从中生成一个可用于强制布局的变量。

Mike 的实现(对于随机生成的圆圈)是:

var nodes = d3.range(n).map(function() {
  var i = Math.floor(Math.random() * m),
      v = (i + 1) / m * -Math.log(Math.random());
  return {
    radius: radius(v),
    color: color(i),
    cx: x(i),
    cy: height / 2
  };
});

假设我的datasetJSON 是这样的:

{"nodes":[{"name": "node_name", "size": 18}, ... ]} 

我希望每个圆的半径是sizeJSON 数组中每个对象的半径。

4

1 回答 1

0

nodes是一个对象数组,每个对象都具有、radius和属性。您需要做的就是从您的数据中创建这样一个数组。究竟如何做到这一点将取决于您的数据。请注意,您不需要创建所有属性——例如,如果所有节点都可以具有相同的颜色,则无需添加相应的属性(但还需要稍后更改实际设置颜色的代码在)。colorcxcy

于 2012-07-22T11:51:37.617 回答