python画带权重的图

最近与几个少年在用C++学习数据结构与算法,讲到图时,总觉得要展示出直观内容才比较好,找到python就可以方便地展示图。(前一阵子还可以找到C++用字符展示树的代码,图要用字符展示,我想还是算了吧)。

不过大部分的代码展示的还是不带权重的图,这个还不够方便,百度多找一会,找到展示权重的方式。

import networkx as nx
import matplotlib.pyplot as plt

# 创建图
G = nx.Graph()

# 增加节点
G.add_nodes_from([1, 2, 3, 4, 5, 6])

# 增加权重,数据格式(节点1,节点2,权重)
e=[(1,2,6), (2,3,2), (1,3,1), (3,4,7), (4,5,9), (5,6,3), (4,6,3)]
for k in e:
    G.add_edge(k[0], k[1], weight=k[2])

# 普通的画图方式
#nx.draw(G, with_labels=True)

# 生成节点位置序列
pos = nx.spring_layout(G)

# 重新获取权重序列
weights = nx.get_edge_attributes(G, "weight")

# 画节点图
nx.draw_networkx(G, pos, with_labels=True)
# 画权重图
nx.draw_networkx_edge_labels(G, pos, edge_labels=weights)

# 展示
plt.show()

画出来的图:

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值