Anton
Anton

Reputation: 601

Tools for visualizing hierarchical networks, and assessing impact of removing nodes from the network

been using NetworkX to visualize the flow of data from system to system. This works well but the visualization seem a little lackluster, additionally I would like to interact with the network, do things like remove nodes or "inspect" nodes. I also tried tool such as Power BI and Gephi but both of them had problems.

What BI Tools/Python libraries etc. are out there to effectively visualize and interact with directed network graphs?

Upvotes: 1

Views: 1568

Answers (1)

vurmux
vurmux

Reputation: 10020

You have two issues that should be treated separately: visualization and interactivity.


Visualization:

NetworkX has some tools to effectively visualize hierarchical graphs. They are using Graphviz library and pygraphviz/pydot interface. Here is the example:

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

If you want to visualize your graph with Graphviz itself, you can convert it to DOT file and use the whole power of Graphviz later.

You can also use Javascript libraries like Bokeh or D3.js to draw your NetworkX graphs in slightly more interactive way (you can interactively select nodes, highlight edges and some more things in these libraries) .


Interactivity:

This problem is far more complex than visualization problem. Python has no stable popular libraries/programs that can allow you to manipulate the graph in the interactive GUI. Interactivity needs very complex software and Python just has no it.

The most suitable software for you are:

  • Gephi (it has no default visualization for hierarchical graphs but you can download a plugin that can allow you to do it).
  • Cytoscape - maybe it can fit you a bit more than Gephi.
  • Wolfram Mathematica - good, but costs money.

Upvotes: 1

Related Questions