求问如何修改使得边权重可以显示第三列的内容?
text.txt部分内容如下:
| #from | in | weight |
| 0 | 1 | 20210101,0.25 |
| 0 | 2 | 20210103,0,5 |
| 1 | 0 | 20210201,0.3 |
| 1 | 2 | 20210202,0.4 |
| 2 | 1 | 20210202,0.6 |
代码如下:
import networkx as nx
import numpy as np
import matplotlib.pyplot as plt
import pylab
g = nx.read_edgelist('./test.txt', nodetype=int,
data=(('weight',float),), create_using=nx.DiGraph())
print(g.edges(data=True))
val_map = {'1':"red", # 点颜色
'0': "green"}
values = [val_map.get(node, 0.25) for node in g.nodes()]
edge_labels=dict([((u,v,),d['weight'])
for u,v,d in g.edges(data=True)])
red_edges = [(1,2),(0,2)]
edge_colors = ['black' if not edge in red_edges else 'red' for edge in g.edges()]
pos=nx.spring_layout(g)
nx.draw_networkx_labels(g, pos) # 显示点中字母
nx.draw_networkx_edge_labels(g,pos,edge_labels=edge_labels) # 显示边权重
nx.draw(g,pos, node_color = values, node_size=1500,edge_color=edge_colors,edge_cmap=plt.cm.Reds)
pylab.show()