d3:我的路径似乎在加倍,我无法弄清楚原因

时间:2013-08-01 20:05:06

标签: javascript jquery svg d3.js chaining

我一直在调查D3,看看Mike Bostock以及我能找到的其他任何人的样本,并查阅文档,甚至还有一本Scott Murray撰写的关于交互式数据可视化的书 - 一本关于D3的书。 / p>

我目前正在开发一个连接图表,而且我已经开始明白这一点,除了更改样本中的数据之外,还有一些问题,但是我遇到了一些我无法弄清楚的问题

这是我的示例链接, http://www.nogumallowed.com/test4.php

这是我的数据, http://www.nogumallowed.com/userImages/friendData1.JSON

这个样本有七个人,其余的都是喜欢来自facebook。该图表显示了用户之间喜欢的交叉点。我的问题是路径,似乎我加了必要的路径,我不知道为什么。我仍然熟悉enter函数,以及选择DOM中没有的东西将它放在DOM中的做法。

从代码中做一些计数,应该有115条路径,但我一直在生成230条路径。

我仍然足够新d3,对于我的生活,我现在无法解决这个问题。

我想要完成的任务...在创建渐变时,起始位置在连接到用户时应该是蓝色,然后是所有喜欢的另一种颜色。从我放在一起的代码中,我不相信应该有一些不是用户以蓝色开头的东西,并且用户永远不应该在它们的基础上没有蓝色的线路,但是正如你所看到的,我正在遇到这个问题。


编辑:我发现我的问题不在于抓住错误的路径,它与A和B有连接,并且不知道这一点在路径中排在第一位。如果我希望连接A处的路径始终为蓝色,并且路径B处的连接始终为绿色,我无法检测到超出此路径的简单具有A的源和B的目标,I不知道哪个真的会先到。我正在将我的示例脚本更新为更轻的版本以查看此内容。

在这个例子中,7个用户名应始终有蓝色,其他一切应该总是有红色,但正如你所看到的,情况并非总是如此。这是我目前处于亏损状态。

1 个答案:

答案 0 :(得分:0)

您的数据文件实际上包含230个链接:

var n = 0;
classes.forEach(function(d) { n = n + d.imports.length; });
// n == 230

此外,您在数据中有相同名称的项目(例如,类[8] abd类[115]) - 可能会导致某些混淆