我正在尝试制作类似于Mike Bostock's的气泡图:
但是,我不想随机生成节点,而是希望为json生成它们。假设我有一个有效JSON的dataset
变量,如何从中生成一个nodes
变量,可以用于强制布局。
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
};
});
假设我的dataset
JSON类似于:
{"nodes":[{"name": "node_name", "size": 18}, ... ]}
我希望每个圆的半径为JSON数组中每个对象的size
。
答案 0 :(得分:0)
nodes
是一个对象数组,每个对象都有radius
,color
,cx
和cy
属性。您需要做的就是从数据中创建这样一个数组。具体如何取决于您的数据。请注意,您不需要创建所有属性 - 例如,如果所有节点都具有相同的颜色,则不需要添加相应的属性(但还需要更改实际设置颜色的代码)上)。