在NetworkX中打印图形

时间:2020-02-05 22:47:40

标签: python networkx

是否可以在NetworkX中漂亮地打印图形?例如:

new_guests = []
for guest in guests:
    if 'name' not in guest:
        # append new information
        new_info = {}
        new_info['name'] = "your_new_name"
        new_info['package'] = {}  # new info
    else:
        # update with new information
        guest['package'].update({})

然后我想将此图看成是一个类似于json的对象,例如:

>>> 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')

它不一定与上面的完全一样,但是应该提供图形的高级数据视图(前提是它相对较小)。

1 个答案:

答案 0 :(得分:2)

在newtorkx 2.3版中,有一种方法nx.to_dict_of_dicts

nx.to_dict_of_dicts(G)

输出:

{'Alan': {'Bob': {}, 'Charles': {}, 'Xavier': {}},
 'Bob': {'Alan': {}},
 'Charles': {'Alan': {}, 'Xavier': {}},
 'Xavier': {'Alan': {}, 'Charles': {}, 'Joan': {}},
 'Joan': {'Xavier': {}}}