在图形中收缩顶点时如何保留/分配节点名称?

2022-04-16 00:00:00 python igraph

问题描述

我正在尝试收缩iggraph中的一些顶点(使用pythonAPI),同时保留顶点的名称。我不清楚如何保留该图的名称属性。图表的节点是人,我正在尝试折叠名称已损坏的人。

我看了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。导入iggraph后,请参见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")

相关文章