samuelbrody1249
samuelbrody1249

Reputation: 4767

Print graph in NetworkX

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

Answers (1)

Scott Boston
Scott Boston

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

Related Questions