我发现graph-tool文档非常晦涩,比其他类似的库更加神秘。
我真的无法弄清楚如何从graph-tools中“提取”组件(也称为连通组件)。我想将子图保存在单独的文件中作为单独的图形,但我不知道如何从我的Graph对象开始识别它们。
我真的无法弄清楚如何从graph-tools中“提取”组件(也称为连通组件)。我想将子图保存在单独的文件中作为单独的图形,但我不知道如何从我的Graph对象开始识别它们。
最简单(也是最快速)的方法是使用GraphView对象来实现。
# label the components in a property map
c = label_components(g)[0]
# "extract" component number 3
u = GraphView(g, vfilt=c.a == 3)
对象u
现在是包含组件标签3的所有顶点的g
的诱导子图。请注意,GraphView
对象不会复制图形,它只是屏蔽其他顶点/边。
如果您希望获得子图的副本(例如,如果您想修改它或原始图形),只需从中实例化新的Graph
对象:
u = Graph(u, prune=True)
图形视图的更多信息可在文档中找到:https://graph-tool.skewed.de/static/doc/quickstart.html#graph-views