用于可视化分层网络并评估从网络中删除节点的影响的工具

时间:2019-10-21 11:37:58

标签: data-visualization networkx hierarchy

使用NetworkX可视化系统之间的数据流。这很好用,但是可视化似乎有些乏味,此外,我想与网络进行交互,执行诸如删除节点或“检查”节点之类的操作。我还尝试了Power BI和Gephi之类的工具,但是它们都有问题。

有哪些BI工具/ Python库等可以有效地可视化有向网络图并与之交互?

1 个答案:

答案 0 :(得分:1)

您有两个问题应分别处理:可视化和交互性。


可视化:

NetworkX有一些工具可以有效地可视化层次图。他们正在使用Graphviz库和pygraphviz/pydot接口。这是示例:

import networkx as nx

# Create the hierarchical graph (DAG)
G = nx.fast_gnp_random_graph(70, 0.02)
G.remove_edges_from([(x, y) for (x, y) in G.edges if x > y])
G = nx.subgraph(G, max(nx.connected_components(G), key=lambda x: len(x)))
# Draw it with default function
nx.draw(G, node_size=50)

enter image description here

# Draw it with graphviz_layout
nx.draw(G, node_size=50, pos=nx.nx_agraph.graphviz_layout(G, prog='dot'))

enter image description here

如果要使用Graphviz本身来可视化图形,可以convert it to DOT file,稍后再使用Graphviz的全部功能。

您还可以使用BokehD3.js之类的Javascript库以更具交互性的方式绘制NetworkX图(您可以在这些库中以交互方式选择节点,突出显示边缘和其他内容)。 / p>


互动性:

此问题比可视化问题复杂得多。 Python没有稳定,流行的库/程序,可以让您在交互式GUI中操作图形。交互需要非常复杂的软件,而Python却没有。

最适合您的软件是:

  • Gephi(它没有层次结构图的默认可视化功能,但是您可以下载一个插件来执行此操作)。
  • Cytoscape-也许比Gephi更适合您。
  • Wolfram Mathematica-很好,但是要花钱。