用于networkX交互式可视化的python库包或交互式工具

时间:2013-07-15 09:12:25

标签: python graph networkx

我想知道python中的交互式可视化库/包可以与NetworkX一起使用来绘制交互式图形。

图表可以在GWT上显示。

如果有好的,请随时提出建议:) 提前谢谢!

2 个答案:

答案 0 :(得分:6)

查看NetworkX文档中的Force示例:

http://networkx.github.io/documentation/latest/examples/javascript/force.html

force示例将NetworkX图表导出为JSON,并通过D3.js库在浏览器中进一步显示。

请注意,您实际上是在处理两个问题。第一个问题是如何将图形序列化为可读格式,如JSON。 NetworkX应该为您提供此功能。第二个问题是如何显示序列化图形。对于此任务,您需要一个额外的库,如D3.js。

这里很酷的是NetworkX不会强制您使用任何特定的库。除了D3.js之外,您可能还想查看以下库:

我知道你有选择Jung作为显示部分的压力。我的建议:不要那样做。对于后台处理和布局部分,您可能没问题,但Jung中的所有浏览器组件都要求浏览器具有Java applet插件。哪个不适用于任何移动浏览器。或平板电脑。在所有。哎呀,你选择使用Java小程序的第二个,你可以保证用安全对话框污染你的应用程序,这些对话框会让所有理智的用户首先使用你的应用程序。

答案 1 :(得分:0)

Holoviews支持通过bokeh后端进行交互。您可以在这里http://holoviews.org/user_guide/Network_Graphs.html

进行检查
import numpy as np
import pandas as pd
import holoviews as hv
import networkx as nx
from holoviews import opts

hv.extension('bokeh')

defaults = dict(width=400, height=400, padding=0.1)
hv.opts.defaults(
    opts.EdgePaths(**defaults), opts.Graph(**defaults), opts.Nodes(**defaults))
# Declare abstract edges
N = 8
node_indices = np.arange(N, dtype=np.int32)
source = np.zeros(N, dtype=np.int32)
target = node_indices


simple_graph = hv.Graph(((source, target),))
simple_graph