【问题标题】:How to visualize a graph using d3.js in iPython notebook?如何在 iPython 笔记本中使用 d3.js 可视化图形?
【发布时间】:2013-10-29 15:46:44
【问题描述】:

我有一个图表,我想使用 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 示例已损坏,并且 repo 已经有一段时间没有更新了。还有其他人知道我是否可以尝试其他方法,或者是否有人可以为我指明第一步?

【问题讨论】:

    标签: python graph d3.js networkx


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      猜你喜欢
      • 2016-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-21
      • 1970-01-01
      • 2015-03-12
      • 1970-01-01
      • 2013-06-18
      相关资源
      最近更新 更多