刚开始学习网络科学,我是 Python 的新手,所以即使在阅读了很多 networkx 文档之后,我也很难弄清楚这一点。我需要比较所有节点之间的距离,并在距离小于 d 的情况下生成一条边。
1)如何将节点 1 与节点(2...99)进行比较,然后将节点 2 与节点(3...99)等进行比较。如果有比 O(n^2) 更好的方法,请给我看看。
2) 如何使用 node_loc{} 中存储的 x,y 坐标将每个节点绘制到坐标平面?
import random, math
import matplotlib.pyplot as plt
import numpy as np
import networkx as nx
import pylab
# Calc distance given (x1,x2,y1,y2)
def distance(x1,x2,y1,y2):
return math.sqrt(((x2-x1)**2)+((y2-y1)**2))
# Generate coordinate value
def coord_val():
# node needs x and y coordinates (floats) from 0->100
return random.uniform(0.0,100.0)
def main():
# The distance that applies to link generation
d = 20
# Make a …Run Code Online (Sandbox Code Playgroud)