小书匠Graph图论 有时候graph建好后,我们并不清除该graph内节点的,边的信息,这就需要调用函数去查看了. 目录: 6.查看Graph的信息 6.1查看graph内节点,边的 6.2查看graph中的点,边 6.3查看某些节点的度 6.4查看节点&边信息 6.5遍历一个有权图 注意:如果代码出现找不库,请返回第一个教程,把库文件导入. 6.查看Graph的信息 6.1查看graph内节点,边的数量 #生成graph  G=nx.path_graph(8)  nx.draw(G,with…
小书匠Graph图论 要画出美观的graph,需要对graph里面的节点,边,节点的布局都要进行设置,具体可以看官方文档:Adding attributes to graphs, nodes, and edges部分. 目录: 5.设置graph的信息 5.1创建graph时添加属性 5.2指定节点的属性 5.3指定边的属性 5.4显示graph 注意:如果代码出现找不库,请返回第一个教程,把库文件导入. 5.设置graph的信息 5.1创建graph时添加属性 #G.clear()  G=nx…
小书匠Graph图论 研究中经常涉及到图论的相关知识,而且常常面对某些术语时,根本不知道在说什么.前不久接触了NetworkX这个graph处理工具,发现这个工具已经解决绝大部分的图论问题(也许只是我自己认为的,没有证据证明),所以把这个工具的使用学习下,顺便学习图论的相关知识. NetworkX本来是有官方文档的,花时间去学也是可以的,我这里把认为重要的整理出来.这些内容会分几次发布,做成一个系列使用教程. 系统环境: linuxmint 18.3 python 3.5.2 numpy 1.1…
小书匠Graph图论 如果只是简单使用nx.draw,是无法定制出自己需要的graph,并且这样的graph内的点坐标的不定的,运行一次变一次,实际中一般是要求固定的位置,这就需要到布局的概念了.详细的画图信息可以看这里,代码中的关键部分使用了英文进行注释,不在另外注释. 目录: 9.Drawing Graph 9.1使用Matplotlib 9.2使用Graphviz AGraph (dot) 9.3图布局 注意:如果代码出现找不库,请返回第一个教程,把库文件导入. 9.Drawing Gra…
小书匠Graph图论 graph生成后,除了有查看操作,还有移除等操作,还有其他更多操作,具体可以看这里.下面将比较graph操作前后的不同. 目录: 7.对图进行操作 7.1移除某些节点和边 7.2合并graph 7.3有向图和无向图的转化 注意:如果代码出现找不库,请返回第一个教程,把库文件导入. 7.对图进行操作 7.1移除某些节点和边 #G.clear()  #生成graph  G=nx.path_graph(8)  plt.subplots(1,2,figsize=(15,5))  p…
小书匠Graph图论 graph构建完成后,对graph的连通等属性进行分析. 目录: 8.对图进行分析 8.1连通子图 8.2弱联通 8.3强连通 8.4子图 8.5条件过滤 注意:如果代码出现找不库,请返回第一个教程,把库文件导入. 8.对图进行分析 强连通:有向图中任意两点v1.v2间存在v1到v2的路径(path)及v2到v1的路径. 弱联通:将有向图的所有的有向边替换为无向边,所得到的图称为原图的基图.如果一个有向图的基图是连通图,则有向图是弱连通图. 8.1连通子图 #定义图的节点和…
小书匠 Graph 图论  学过线性代数的都了解矩阵,在矩阵上的文章可做的很多,什么特征矩阵,单位矩阵等.grpah存储可以使用矩阵,比如graph的邻接矩阵,权重矩阵等,这节主要是在等到graph后,如何快速得到这些信息.详细官方文档在这里 目录: 12.graph和其他数据格式转换 12.1graph与字典(Dict) 12.2graph与列表(List) 12.3graph与numpy 12.4graph与Scipy 12.5graph与Pandas 注意:如果代码出现找不库,请返回第一个…
小书匠Graph图论 不可否认,日常中我们使用最多的还是,使用自己的数据去手动创建自己的图形,而不是使用生成器,现从给graph添加点和边入手,讲解手动创建graph. 目录: 3.给graph添加节点 4.给graph添加边 注意:如果代码出现找不库,请返回第一个教程,把库文件导入. 3.给graph添加节点 from math import ceil  #该函数由于显示一组graph,传上来的是一组graph和这些graph的描述.  def ShowGraph(glists,ginfo,r…
小书匠Graph图论 本节主要讲解如何快速使用内置的方法生成graph,官方的文档在这里,里面包含了networkX的所有graph生成器,下面的内容只是我节选的内容,并将graph画出来而已. 声明,文中重复使用了以下代码块 ,现在统一注释在这里: plt.subplot(221) #生成2*2的组图,并且当前子图在2*2矩阵的第一个位置.第二个位置是222  plt.title('complete_graph') #子图的标题  nx.draw(G, with_labels=True, fo…
小书匠Graph图论 重头戏部分来了,写到这里我感觉得仔细认真点了,可能在NetworkX中,实现某些算法就一句话的事,但是这个算法是做什么的,用在什么地方,原理是怎么样的,不清除,所以,我决定先把图论中常用算法弄个明白在写这部分. 图论常用算法看我的博客: 下面我将使用NetworkX实现上面的算法,建议不清楚的部分打开两篇博客对照理解. 我将图论的经典问题及常用算法的总结写在下面两篇博客中: 图论---问题篇 图论---算法篇 目录: * 11.3关键路径算法(CPA) 注意:如果代码出现找…