在igraph中收缩顶点时如何保留/指定节点名称



我试图在保留顶点名称的同时,在igraph中收缩一些顶点(使用python api)。我不清楚如何保留图形的name属性。图中的节点是人,我试图用损坏的名字来折叠人。

我看了R文档,仍然不知道该怎么做。

例如,如果我执行以下任一操作,就会出现错误。

smallgraph.contract_vertices([0,1,2,3,4,2,6],vertex.attr.comb=[name='first'])
smallgraph.contract_vertices([0,1,2,3,4,2,6],vertex.attr.comb=['first'])

在Python中,您需要的关键字参数称为combine_attrs,而不是vertex.attr.comb。导入igraph后,请从Python命令行中参见help(Graph.contract_vertices)。此外,关键字参数接受单个说明符(如first)或字典。您的第一个示例是无效的,因为它根本不是有效的Python语法。第二个示例不起作用,因为您传递的列表带有单个项,而不是仅包含单个项。

因此,正确的变体是:

smallgraph.contract_vertices([0,1,2,3,4,2,6], combine_attrs=dict(name="first"))
smallgraph.contract_vertices([0,1,2,3,4,2,6], combine_attrs="first")

永不终止。你只需输入一本字典,而不需要使用

vertex.attr.comb   

最新更新