【发布时间】:2021-02-17 20:43:50
【问题描述】:
我在python中有一个使用networkx的基本网络图,我想做的是为每个节点添加特定数量的边,而不是自己直接确定边。
import networkx as nx
import matplotlib.pyplot as plt
hosts = 100
nodes = list(range(1,(hosts+1)))
H=nx.Graph()
H.add_nodes_from(nodes)
nx.draw_random(H)
所以对于这个图,我想做的是指定“每个节点两条边”,然后让 python 计算结果。这可能吗?
非常感谢。
【问题讨论】:
-
您是要在每个节点上添加两条边,使边的总数是节点数的两倍,还是要让每个节点的度数为 2?
-
可以,但是默认不行。你必须为它编写代码。你关心哪个节点连接到哪个节点,还是你关心的都是随机的?
-
@kaya3,我希望每个节点有 2 度,没有循环。
-
当我发表评论时,我不知道下面答案中的方法存在。我会简单地重新发明轮子,但您可以使用
H = nx.configuration_model([2] * hosts)简单地做到这一点。默认情况下,节点将从 0 开始编号,但您可以remap them。如果对所提供的答案有什么不满意的地方,您可以在那里要求进一步澄清。 -
如果 Fony Lew's 解决了您的问题,请考虑将其标记为已接受。