NetworkX系列教程(1)-创建graph
研究中经常涉及到图论
的相关知识,而且常常面对某些术语时,根本不知道在说什么.前不久接触了NetworkX这个graph处理工具,发现这个工具已经解决绝大部分的图论
问题(也许只是我自己认为的,没有证据证明),所以把这个工具的使用学习下,顺便学习图论
的相关知识.
NetworkX本来是有官方文档的,花时间去学也是可以的,我这里把认为重要的整理出来.这些内容会分几次发布,做成一个系列使用教程.
系统环境:
linuxmint 18.3
python 3.5.2
numpy 1.14.3
matplotlib 1.5.1
networkx 2.1
全文注意事项:
1.为了方便,graph我有时候会称为
图
,这时候不要将这个和图片混淆了.
2.代码中会频繁使用G.clear(),这是在画新的graph之前,先清空原先的graph
3.matplotlib包不能显示平行边
,自循环
这类的边,所以需要借助pydot包来显示,不过一般使用matplotlib来显示
创建一个Graph
例子:
下面涉及的graph如果不是特别需要,我将使用图1
这个手动创建的graph,这个graph有双向边,有孤岛节点,有平行边,有自循环
导入相应包,定义graph
1 | #导入相应的包 |
有自循环的无向图
1 | #定义无向图 |
有自循环的有向图
1 | #清除前面的无向图 |
有自循环和平行边的无向图
1 | #清除前面的无向图 |
有自循环和平行边的有向图
1 | #清除前面的无向图 |