Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 最新群集部队布局示例的问题_Javascript_D3.js_Force Layout - Fatal编程技术网

Javascript 最新群集部队布局示例的问题

Javascript 最新群集部队布局示例的问题,javascript,d3.js,force-layout,Javascript,D3.js,Force Layout,根据这项工作: 如果我用自动生成的数据的JSON.stringify()输出代替自动创建节点,如下所示 var nodes = [ {"cluster":2,"radius":1.6180680659922448}, {"cluster":0,"radius":3.3575295077569}, {"cluster":1,"radius":0.9569281165554346}, {"cluster":3,"radius":10.7245554165012} ];

根据这项工作:

如果我用自动生成的数据的JSON.stringify()输出代替自动创建节点,如下所示

var nodes = [
    {"cluster":2,"radius":1.6180680659922448},
    {"cluster":0,"radius":3.3575295077569},
    {"cluster":1,"radius":0.9569281165554346},
    {"cluster":3,"radius":10.7245554165012}
];
…我在以下行中遇到异常“无法读取未定义的属性x”:

var x = d.x - cluster.x,
这在集群(alpha)函数中。那么,显然自动生成数据的d3.map函数在结构中加入了JSON字符串化没有捕捉到的东西?也许我只是忽略了一些简单的事情…谢谢你的帮助。谢谢这里有一把小提琴可以帮忙:


我注释掉了不起作用的代码。另外,另一个细节是,它看起来不像我离开时的原始代码(除了我减少了集群和节点的数量)实际上处理了正确数量的不同集群。它应该绘制4个不同的节点,但只绘制3种颜色。

问题是,
节点
不是唯一需要初始化的数据结构--
集群
也需要初始化。特别是,特定节点被分配给特定的集群索引。如果你不这样做,事情就会破裂

要修复,请执行以下操作

nodes.forEach(function(d) { clusters[d.cluster] = d; });

完成JSFIDLE。

哦,是的,我非常想念分配给集群阵列的任务。非常感谢你!