图工具:子图作为新的图对象
Graph-tool: subgraphs as new Graph objects
我发现图形工具文档非常晦涩,而且比其他类似的库更神秘。
我真的不知道如何从图形工具中的图形 "extract" 组件(又名连接组件)。我想将子图作为单独的图形保存在单独的文件中,但我不明白如何从我的图形对象开始识别它们。
最简单(也是最快)的方法是使用 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
现在是 g
的导出子图,包含组件标签 3 的所有顶点。注意 GraphView
对象不复制图,它简单地掩盖另一个 vertices/edges.
如果您想要子图的副本(例如,如果您想要修改它或原始图),您只需从中实例化一个新的 Graph
对象:
u = Graph(u, prune=True)
文档中提供了有关图形视图的更多信息:https://graph-tool.skewed.de/static/doc/quickstart.html#graph-views
我发现图形工具文档非常晦涩,而且比其他类似的库更神秘。
我真的不知道如何从图形工具中的图形 "extract" 组件(又名连接组件)。我想将子图作为单独的图形保存在单独的文件中,但我不明白如何从我的图形对象开始识别它们。
最简单(也是最快)的方法是使用 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
现在是 g
的导出子图,包含组件标签 3 的所有顶点。注意 GraphView
对象不复制图,它简单地掩盖另一个 vertices/edges.
如果您想要子图的副本(例如,如果您想要修改它或原始图),您只需从中实例化一个新的 Graph
对象:
u = Graph(u, prune=True)
文档中提供了有关图形视图的更多信息:https://graph-tool.skewed.de/static/doc/quickstart.html#graph-views