用于可视化分层网络和评估从网络中删除节点的影响的工具
Tools for visualizing hierarchical networks, and assessing impact of removing nodes from the network
一直在使用 NetworkX 可视化系统之间的数据流。这很好用,但可视化看起来有点乏味,另外我想与网络交互,做一些事情,比如删除节点或 "inspect" 节点。我也尝试过 Power BI 和 Gephi 等工具,但它们都有问题。
有哪些 BI Tools/Python 库等可以有效地可视化有向网络图并与之交互?
您有两个问题应该分开处理:可视化和交互性。
可视化:
NetworkX 有一些工具可以有效地可视化层次图。他们正在使用 Graphviz library and 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)
# Draw it with graphviz_layout
nx.draw(G, node_size=50, pos=nx.nx_agraph.graphviz_layout(G, prog='dot'))
如果您想使用 Graphviz 本身可视化您的图表,您可以convert it to DOT file并在以后使用 Graphviz 的全部功能。
您还可以使用 Javascript 库,如 Bokeh or D3.js 以稍微更具交互性的方式绘制您的 NetworkX 图(您可以交互地 select 节点,突出显示这些中的边和其他一些东西库).
互动性:
这个问题远比可视化问题复杂。 Python 没有稳定的流行 libraries/programs 可以让您在交互式 GUI 中操作图形。交互性需要非常复杂的软件,而 Python 却没有。
最适合您的软件是:
- Gephi(它没有层次图的默认可视化,但您可以下载一个插件来实现)。
- Cytoscape - 也许它比 Gephi 更适合你。
- Wolfram Mathematica - 不错,但要花钱。
一直在使用 NetworkX 可视化系统之间的数据流。这很好用,但可视化看起来有点乏味,另外我想与网络交互,做一些事情,比如删除节点或 "inspect" 节点。我也尝试过 Power BI 和 Gephi 等工具,但它们都有问题。
有哪些 BI Tools/Python 库等可以有效地可视化有向网络图并与之交互?
您有两个问题应该分开处理:可视化和交互性。
可视化:
NetworkX 有一些工具可以有效地可视化层次图。他们正在使用 Graphviz library and 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)
# Draw it with graphviz_layout
nx.draw(G, node_size=50, pos=nx.nx_agraph.graphviz_layout(G, prog='dot'))
如果您想使用 Graphviz 本身可视化您的图表,您可以convert it to DOT file并在以后使用 Graphviz 的全部功能。
您还可以使用 Javascript 库,如 Bokeh or D3.js 以稍微更具交互性的方式绘制您的 NetworkX 图(您可以交互地 select 节点,突出显示这些中的边和其他一些东西库).
互动性:
这个问题远比可视化问题复杂。 Python 没有稳定的流行 libraries/programs 可以让您在交互式 GUI 中操作图形。交互性需要非常复杂的软件,而 Python 却没有。
最适合您的软件是:
- Gephi(它没有层次图的默认可视化,但您可以下载一个插件来实现)。
- Cytoscape - 也许它比 Gephi 更适合你。
- Wolfram Mathematica - 不错,但要花钱。