python画有权重网络图_NetworkX:Python图与网络模型基础

本文介绍了如何使用Python的NetworkX库创建和展示无向图,添加权重,计算最短路径,并解决最大流问题。内容包括无向图的构建与展示,有向图的创建,权重的添加方式,Dijkstra算法求最短路径,以及最大流的计算。
摘要由CSDN通过智能技术生成

在《运筹学》课堂上,我们学习过图与网络,当时用到R语言下的igraph包来计算和展示结果。Python下也有类似甚至更好的库: 。

安装命令如下

引入约定为

1 图的绘制

无向图

无向图由点和边构成,其绘制思路为:①新建空图→②添加点→③添加边。

新建空的无向图

以后所有的信息都添加在无向图G上。

添加点:addnode和add_nodes_from

虽然还没有讲到怎么展示这张图,但你可能想看看自己已经画了啥;所以我们剧透一下:输入nx.draw(G)看看吧。

添加边:add_edge和add_edges_from

移除点或边使用remove_*系列方法。

展示图

NetworkX可以结合matpltlib库来展示图,因此需要载入plt:

最常用的展示命令是 ,所有参数都是可选的。

简单介绍一些可选参数,如

ax:画纸名

nodecolor/edgecolor/font_color:点、边、字颜色

nodeshape/nodesize:点的形状和大小

style:边的形状(solid/dashed/dotted/dashdot)

alpha:点和边的透明度

with_labels:点是否显示标签

arrows/arrowstyle/arrowsize:有向图的箭头设定

我们并列展示默认和自定义结果:

另有 函数,支持自定义点的位置(类型)。

有向图

有向图和无向图的差别仅仅在边是有

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值