Reputation: 4767
Is there a way to pretty print a graph in NetworkX? For example:
>>> import networkx as nx
>>> G = nx.Graph()
>>> G.add_edge('Alan', 'Bob')
>>> G.add_edge('Alan', 'Charles')
>>> G.add_edge('Alan', 'Xavier')
>>> G.add_edge('Charles', 'Xavier')
>>> G.add_edge('Joan', 'Xavier')
I would then like to see this graph as a json-like object, for example:
{
'Alan': {
'Bob': {},
'Charles': {
'Xavier': {}
},
'Xavier': {},
},
'Joan': {
'Xavier': {}
}
}
It doesn't have to be exactly like the above, but should give a good high-level data view of the graph (provided it's relatively small).
Upvotes: 3
Views: 3676
Reputation: 153460
In newtorkx version 2.3, there is a method nx.to_dict_of_dicts
:
nx.to_dict_of_dicts(G)
Output:
{'Alan': {'Bob': {}, 'Charles': {}, 'Xavier': {}},
'Bob': {'Alan': {}},
'Charles': {'Alan': {}, 'Xavier': {}},
'Xavier': {'Alan': {}, 'Charles': {}, 'Joan': {}},
'Joan': {'Xavier': {}}}
Upvotes: 10