按照题主提供的excel表格样式,假如表格名为tgraph.xlsx作有权重无向图,见如下代码:
import networkx as nx
import matplotlib.pyplot as plt
import pandas as pd
plt.rcParams['font.sans-serif'] = ['SimHei']
df=pd.read_excel('tgraph.xlsx',index_col=0)
df=df.fillna(0).astype(int)
matrix=df.values
nodes=list(df.columns)
weight={}
G=nx.Graph()
for i in range(len(matrix)):
for j in range(len(nodes)):
if matrix[i,j]!=0:
G.add_edge(nodes[i],nodes[j])
weight.update({(nodes[i], nodes[j]):matrix[i, j]})
#elargse=[(u,v) for (u,v,d) in G.edges(data=True)]
#pos=nx.spring_layout(G)
pos=nx.circular_layout(G)
nx.draw_networkx_nodes(G,pos,node_size=800)
nx.draw_networkx_edges(G,pos,width=3)
nx.draw_networkx_labels(G,pos,font_size=10)
nx.draw_networkx_edge_labels(G, pos,weight,font_size=10)
plt.show()
参考一下https://blog.csdn.net/weixin_40198632/article/details/78418714
好文曾用过,推荐一下https://blog.csdn.net/yuelulu0629/article/details/80115297
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632