从字典创建图形工具图

时间:2016-09-06 23:51:42

标签: python dictionary networkx graph-tool

我一直在使用networkx,它真的很简洁,它让我直接从字典创建Graph对象:简单地nx.Graph(my_dictionary)。 现在我正在尝试使用图形工具,我注意到我不能这样做。

在谷歌搜索时,我遇到this blog post,其中显示了如何从networkx图创建图工具图。 然而,这个过程非常复杂,每当我使用图形工具时,我都不想依赖于自制函数 networkx。

我想编写一个迭代我字典的函数就好了。 但在我开始这样做之前,我想确保没有人编写过dict-to-graph-tool解析器。 这似乎是一个显而易见的事情,但我在图表工具文档中绝对找不到任何东西......

1 个答案:

答案 0 :(得分:2)

这看起来很简单。假设你的字典代表图表的adjacency list(这是你在评论中所说的),它可以按如下方式完成:

In [3]: d # This dictionary contains the adjacency list
Out[3]: {0: [1, 2], 1: [3]}

您可以创建边缘列表并将其添加到空图表中:

In [4]: edges = [(i, j) for i in d for j in d[i]]

In [6]: G = gt.Graph(directed = False)

In [7]: G.add_edge_list(edges)

In [8]: G
Out[8]: <Graph object, undirected, with 4 vertices and 3 edges at 0x7fdbc8257780>

这是你想要的。