gpt4 book ai didi

python - 获取节点位置和边长

转载 作者:行者123 更新时间:2023-11-30 23:09:03 24 4
gpt4 key购买 nike

有人可以告诉我如何在不自己计算的情况下获得节点的位置和边的长度吗?

import networkx as nx    
G = nx.Graph()
G.add_edge('a','b')

最佳答案

节点没有任何位置,除非您为它们分配一个位置。幸运的是 Networkx 有一些布局算法 already implemented:

# Position nodes on a circle.
pos = circular_layout(G[, dim, scale])

# Position nodes uniformly at random in the unit square.
pos = random_layout(G[, dim])

# Position nodes in concentric circles.
pos = shell_layout(G[, nlist, dim, scale])

# Position nodes using Fruchterman-Reingold force-directed algorithm.
pos = spring_layout(G[, dim, k, pos, fixed, ...])

# Position nodes using the eigenvectors of the graph Laplacian.
pos = spectral_layout(G[, dim, weight, scale])

返回值pos是由节点索引的位置的字典。

没有内置函数可以给出边的长度,但是一旦有了每个节点的坐标,您就可以使用简单的公式计算边的长度:

import math
dist_node12 = math.sqrt((pos[node1][0] - pos[node2][0])**2 + (pos[node1][1] - pos[node2][1])**2)

关于python - 获取节点位置和边长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31415907/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com