2

我有一个想要使用 d3.js 可视化的图表。具体来说,我有一个如下所示的邻接矩阵(数据的选择,而不是完整的集合):

Node 1    Node 2    Weight
A         B         1.0
A         C         1.0
A         D         1.5
B         D         1.0
...

我希望能够使用 Force-Directed Graph 来显示我的网络,特别是。

我知道如何创建 NetworkX 图,但我希望能够在 d3.js 中尝试这个,因为我希望稍后能够添加节点属性的鼠标悬停显示,我认为这可以使用 d3 但不可能使用matplotlib。

我曾尝试使用 d3py,但我什至无法让基本示例正常工作,并且我读到 NetworkX 示例已损坏,并且存储库已经有一段时间没有更新了。还有其他人知道我是否可以尝试其他方法,或者是否有人可以为我指明第一步?

4

2 回答 2

3

这里有一个使用 d3.js 强制布局的 NetworkX 示例:http: //networkx.github.io/documentation/latest/examples/javascript/force.html

它只是从 networkx 写入一个 JSON 格式的图形对象,d3.js 可以将其加载到 Web 浏览器中以获取交互式绘图。该代码有点花哨,因为它还将为您完成网络浏览器部分。

您需要运行它的所有代码(包括 d3 部分)都在存储库中https://github.com/networkx/networkx/tree/master/examples/javascript

于 2013-10-29T19:56:45.863 回答
2

如果您对替代 JavaScript 框架感到满意,我们一直在构建http://www.github.com/graphistry/pygraphistry。这个想法是使用 WebGL 来渲染大图(平移/缩放/等),并将大部分实时计算(布局、过滤器等)卸载到 GPU 云。下面有一个 API 用于控制它,类似于 D3。然而,它对大多数用途来说更容易,因为它简化了常见的大图操作和分析。

于 2015-11-04T18:30:18.890 回答