Reputation: 601
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
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)
# Draw it with graphviz_layout
nx.draw(G, node_size=50, pos=nx.nx_agraph.graphviz_layout(G, prog='dot'))
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:
Upvotes: 1