【问题标题】:problems with latest cluster force layout example最新集群力布局示例的问题
【发布时间】:2013-12-10 17:21:07
【问题描述】:

基于此作品:http://bl.ocks.org/mbostock/7882658

如果我用这样的自动生成数据的 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,

这是在 cluster(alpha) 函数内部。那么,显然自动生成数据的 d3.map 函数将某些内容放入 JSON 字符串化未捕获的结构中?也许我只是忽略了一些简单的事情......感谢您的帮助。谢谢!这是一个可以帮忙的小提琴:http://jsfiddle.net/Nivaldo/FJ3qq/1/

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

【问题讨论】:

    标签: javascript d3.js force-layout


    【解决方案1】:

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

    要修复,请执行以下操作

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

    完整的 jsfiddle here.

    【讨论】:

    • 哦,是的,我非常想念集群数组的分配。非常感谢!
    猜你喜欢
    • 2013-05-04
    • 1970-01-01
    • 2014-09-03
    • 1970-01-01
    • 2016-01-06
    • 1970-01-01
    • 2011-02-17
    • 1970-01-01
    • 2017-11-20
    相关资源
    最近更新 更多