我已经使用networkx一段时间了,它让我直接从字典创建Graph对象的方式非常巧妙:只需nx.Graph(my_dictionary)
。
现在我尝试使用图形工具,但我发现我不能做同样的事情。
在谷歌搜索时我发现了 this blog post它展示了如何从 networkx 图创建图形工具图。 然而,这个过程非常复杂,每当我使用 graph-tool 时,我都不想同时依赖自制函数和 networkx。
我想编写一个迭代我的字典的函数也同样容易。 但在我开始这样做之前,我想确保没有人已经编写过字典到图形工具解析器。 这似乎是一件显而易见的事情,但我在图形工具文档中找不到任何东西......
最佳答案
这看起来很简单。假设你的字典代表 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>
这就是你想要的。
关于python - 从字典创建图形工具图形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39359386/