0

我一直在研究 D3,查看 Mike Bostock 和我能找到的任何其他人的示例,并复习文档,甚至还有一本 Scott Murray 写的关于交互式数据可视化的书——一本关于 D3 的书。

我目前正在制作一个连接图,并且我开始理解到足以完成这一切,而不仅仅是从样本中更改数据,但我仍然遇到了一些我无法弄清楚的问题。

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

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

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

只是从代码中计算一下,应该有 115 条路径,但我不断生成 230 条路径。

我对 d3 还很陌生,对于我的一生来说,我现在无法弄清楚这一点。

我想要完成什么... 创建渐变时,连接到用户时的起始位置应该是蓝色,然后是其他所有喜欢的颜色。从我放在一起的代码中,我不认为应该有不是用户以蓝色开头的东西,并且用户永远不应该有一条线与他们连接的线不是底部的蓝色,但是如您所见,我遇到了这个问题。


编辑:我发现我的问题不在于获取不正确的路径,而是与 A 和 B 有连接,并且不知道这一点首先出现在路径中。如果我希望连接 A 处的路径始终为蓝色,而路径 B 处的连接始终为绿色,我无法检测到在这条路径之外简单有 A 的源和 B 的目标,我不知道哪个会真正先出现。我正在将我的示例脚本更新为更轻的版本以查看此内容。

在此示例中,7 个用户名应始终带有蓝色,而其他所有用户名都应始终带有红色,但正如您所见,情况并非总是如此。这是我目前不知所措的地方。

4

1 回答 1

0

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

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

此外,您在数据中有同名的项目(例如 classes[8] abd classes[115]) - 可能会导致一些混乱

于 2013-08-01T20:40:08.003 回答