繁体   English   中英

过滤图表工具中的子图

[英]Filtering a subgraph in graph-tool

这是一个关于图形工具的一个荒谬的基本问题,应该是很容易弄清楚如何使用文档来解决,但我在旋转。 我不怀疑文档是否全面,但它肯定不会让这很容易。

目标:给定图G,根据G的顶点列表提取诱导子图。

我知道我应该以某种方式使用GraphView这样做。 我明白了。 我也明白我需要为此创建一个顶点PropertyMap 但究竟应该创造什么呢?

这里的文档非常缺乏。 例如, PropertyMaps上页面说每个PropertyMap可以是某种类型,但我还没弄清楚这意味着什么。 这些类型代表什么? 我什么时候想要使用另一种类型? 鉴于PropertyMaps显然对图形工具的有效使用有多重要,我对文档的不清楚感到有点困惑。

对于这个问题,我得到模糊的感觉,我需要使用布尔类型,因为我可能想要将子图中我想要的顶点设置为“true”,而我不希望子图中的顶点为“false”。 “ 但这是否意味着我创建的PropertyMap需要与原始图G中的节点数具有相同的长度? 或者我可以只提供一个节点列表,并以某种方式让它被理解为那些是唯一被设置为True?

你是对的。 你必须使用GraphView 在下面的示例中,从具有5个顶点的完整图形创建具有顶点0,1,3的诱导子图

from graph_tool import GraphView, generation

g = generation.complete_graph(5)

# select some vertices
vfilt = g.new_vertex_property('bool');
vfilt[0] = True
vfilt[1] = True
vfilt[3] = True

sub = GraphView(g, vfilt)

print [(g.vertex_index[e.source()], g.vertex_index[e.target()])
           for e in sub.edges()]

产量

[(0, 1), (0, 3), (1, 3)]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM