使用带有自定义类的图形生成器作为nod

2024-04-23 17:31:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我想使用一些内置的图形生成器,但是使用自定义的python类作为节点而不是整数。最好的方法是什么?是否应该将自定义类添加为属性?在

例如,这里我生成了一个完整的图,其中包含整数作为节点:

import networkx as nx
K_5 = nx.complete_graph(5)

在这里,我创建了一个代理,我想将其用作节点而不是整数:

^{pr2}$

我想知道答案是否包括创建一个网络,然后用nx.relabel_nodes()重新标记节点。在


Tags: 方法答案importnetworkx图形代理属性节点
1条回答
网友
1楼 · 发布于 2024-04-23 17:31:29

Networkx似乎真的希望使用id,而不是具体的对象。但是您的想法是正确的,我们可以使用relabel_nodes()将数字转换为对象实例。在

演示:

来源

import networkx as nx

class Agent(object):
    def __init__(self, id):
        self.id = id
    def __repr__(self):
        return '<Agent #{}>'.format(self.id)


g = nx.complete_graph(5)
print g.nodes()

nx.relabel_nodes(g, mapping=Agent, copy=False)
print g.nodes()

输出

^{pr2}$

相关问题 更多 >