如何根据边权重在Networkx中指定边长

时间:2017-08-03 18:13:01

标签: networkx

import networkx as nx
import numpy as np
import pylab as plt

#Generate graph with 4 nodes
erdo_graph = nx.erdos_renyi_graph(4, 0.7, directed=False)

#Add edge weights
for u,v,d in erdo_graph.edges(data=True):
    d['weight'] =  np.random.choice(np.arange(1, 7), p=[0.1, 0.05, 0.05, 0.2,])

#If you want to print out the edge weights:
labels = nx.get_edge_attributes(erdo_graph,'weight')

print("Here are the edge weights: ", labels)

#Following "Networkx Spring Layout with different edge values" link that you supplied:
initialpos = {1:(0,0), 2:(0,3), 3:(0,-1), 4:(5,5)}
pos = nx.spring_layout(erdo_graph, weight='weight', pos=initialpos)
nx.draw_networkx(erdo_graph, pos)
plt.show()

每当我尝试根据布局定位节点时,我希望通过较低边缘权重连接的节点彼此更接近,但情况似乎并非如此。 enter image description here

0 个答案:

没有答案