我想知道 Python 中的哪些交互式可视化库/包可以与 NetworkX 一起使用来绘制交互式图形。
该图将能够显示在 GWT 上。
如果有好的,请随时提出建议:)提前谢谢!
查看 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 中的所有浏览器组件都要求浏览器具有 Java 小程序插件。这不适用于任何移动浏览器。或平板电脑。完全没有。哎呀,当你选择使用 Java 小程序的那一刻,你肯定会用安全对话框污染你的应用程序,这将首先驱逐所有理智的用户使用你的应用程序。
Holoviews 通过散景后端支持交互性。你可以在这里查看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