小书匠Graph图论

有时候graph建好后,我们并不清除该graph内节点的,边的信息,这就需要调用函数去查看了.

目录:


注意:如果代码出现找不库,请返回第一个教程,把库文件导入.

6.查看Graph的信息

6.1查看graph内节点,边的数量

  1. #生成graph 

  2. G=nx.path_graph(8) 

  3. nx.draw(G,with_labels=True) 

  4. plt.axis('on') 

  5. plt.xticks([]) 

  6. plt.yticks([]) 

  7. plt.show() 


  8. #查看节点和边的情况 

  9. print('number of nodes',G.number_of_nodes()) 

  10. print('number of edges',G.number_of_edges()) 


例子图

输出:

  1. number of nodes 8 

  2. number of edges 7 

6.2查看graph中的点,边

  1. #输出graph所有的点和边 

  2. print('all nodes of Graph',G.nodes()) 

  3. print('all edges of Graph',G.edges()) 

输出:

  1. all nodes of Graph [0, 1, 2, 3, 4, 5, 6, 7] 

  2. all edges of Graph [(0, 1), (1, 2), (2, 3), (3, 4), (4, 5), (5, 6), (6, 7)] 

6.3查看某些节点的度

  1. #查看节点2和3的度 

  2. print('degree of some nodes',G.degree([2, 3])) 

输出:

  1. degree of some nodes [(2, 2), (3, 2)] 

6.4查看节点&边信息

  1. #设置一些节点信息 

  2. G.nodes[1]['room'] = 714 

  3. G.nodes[1]['color'] = 'b' 

  4. #设置一些边信息 

  5. G[1][2]['weight'] = 4.7 

  6. G[1][2]['color'] = "blue" 


  7. print('imformation of one nodes',G.nodes[1]) 

  8. print('imformation of all nodes',G.nodes.data()) 


  9. print('imformation of all nodes',G.edges.data()) #边不支持[x]这样的下标访问 

输出:

  1. imformation of one nodes {'room': 714, 'color': 'b'} 

  2. imformation of all nodes [(0, {}), (1, {'room': 714, 'color': 'b'}), (2, {}), (3, {}), (4, {}), (5, {}), (6, {}), (7, {})] 

  3. imformation of all nodes [(0, 1, {}), (1, 2, {'weight': 4.7, 'color': 'blue'}), (2, 3, {}), (3, 4, {}), (4, 5, {}), (5, 6, {}), (6, 

7, {})]

6.5遍历一个有权图

  1. #定义一个有权无向图 

  2. FG = nx.Graph() 

  3. FG.add_weighted_edges_from([(1, 2, 0.125), (1, 3, 0.75), (2, 4, 1.2), (3, 4, 0.375)]) 


  4. #遍历邻接矩阵 

  5. for n, nbrs in FG.adj.items(): 

  6. for nbr, eattr in nbrs.items(): 

  7. wt = eattr['weight'] 

  8. #权重小于0.5的输出 

  9. if wt < 0.5:  

  10. print('way1-(%d, %d, %.3f)' % (n, nbr, wt)) 


  11. #遍历所有边 

  12. for (u, v, wt) in FG.edges.data('weight'): 

  13. #权重小于0.5的输出 

  14. if wt < 0.5:  

  15. print('way2-(%d, %d, %.3f)' % (u, v, wt)) 

输出:

  1. way1-(1, 2, 0.125) 

  2. way1-(2, 1, 0.125) 

  3. way1-(3, 4, 0.375) 

  4. way1-(4, 3, 0.375) 

  5. way2-(1, 2, 0.125) 

NetworkX系列教程(5)-查看graph的信息的更多相关文章

  1. NetworkX系列教程(4)-设置graph的信息

    小书匠Graph图论 要画出美观的graph,需要对graph里面的节点,边,节点的布局都要进行设置,具体可以看官方文档:Adding attributes to graphs, nodes, and ...

  2. NetworkX系列教程(1)-创建graph

    小书匠Graph图论 研究中经常涉及到图论的相关知识,而且常常面对某些术语时,根本不知道在说什么.前不久接触了NetworkX这个graph处理工具,发现这个工具已经解决绝大部分的图论问题(也许只是我 ...

  3. NetworkX系列教程(8)-Drawing Graph

    小书匠Graph图论 如果只是简单使用nx.draw,是无法定制出自己需要的graph,并且这样的graph内的点坐标的不定的,运行一次变一次,实际中一般是要求固定的位置,这就需要到布局的概念了.详细 ...

  4. NetworkX系列教程(6)-对graph进行操作

    小书匠Graph图论 graph生成后,除了有查看操作,还有移除等操作,还有其他更多操作,具体可以看这里.下面将比较graph操作前后的不同. 目录: 7.对图进行操作 7.1移除某些节点和边 7.2 ...

  5. NetworkX系列教程(7)-对graph进行分析

    小书匠Graph图论 graph构建完成后,对graph的连通等属性进行分析. 目录: 8.对图进行分析 8.1连通子图 8.2弱联通 8.3强连通 8.4子图 8.5条件过滤 注意:如果代码出现找不 ...

  6. NetworkX系列教程(11)-graph和其他数据格式转换

    小书匠 Graph 图论  学过线性代数的都了解矩阵,在矩阵上的文章可做的很多,什么特征矩阵,单位矩阵等.grpah存储可以使用矩阵,比如graph的邻接矩阵,权重矩阵等,这节主要是在等到graph后 ...

  7. NetworkX系列教程(3)-手动创建graph

    小书匠Graph图论 不可否认,日常中我们使用最多的还是,使用自己的数据去手动创建自己的图形,而不是使用生成器,现从给graph添加点和边入手,讲解手动创建graph. 目录: 3.给graph添加节 ...

  8. NetworkX系列教程(2)-graph生成器

    小书匠Graph图论 本节主要讲解如何快速使用内置的方法生成graph,官方的文档在这里,里面包含了networkX的所有graph生成器,下面的内容只是我节选的内容,并将graph画出来而已. 声明 ...

  9. NetworkX系列教程(10)-算法之三:关键路径问题

    小书匠Graph图论 重头戏部分来了,写到这里我感觉得仔细认真点了,可能在NetworkX中,实现某些算法就一句话的事,但是这个算法是做什么的,用在什么地方,原理是怎么样的,不清除,所以,我决定先把图 ...

随机推荐

  1. 【字符串hash】DNA

    DNA 题目描述 小X身为奆老,兴趣爱好广泛,他还非常喜欢研究DNA序列……小X进行了一项关于DNA序列研究,发现人某条染色体上的一段DNA序列中连续的k个碱基组成的碱基序列与做题的AC率有关!于是他 ...

  2. springboot整合druid、mybatis

    目的: 1.springboot配置数据库连接池druid 测试druid中url监控 2.springboot整合mybatis 测试查删案例 3.springboot整合pagehelper sp ...

  3. hdu 1342.. 复习广搜 顺便练习一下一个脑残的格式

    In a Lotto I have ever played, one has to select 6 numbers from the set {1,2,...,49}. A popular stra ...

  4. pip源设置为国内源

    windows系统步骤如下: (1)打开文件资源管理器(文件夹地址栏中) (2)地址栏上面输入 %appdata% (3)在这里面新建一个文件夹 pip (4)在pip文件夹里面新建一个文件叫做 pi ...

  5. Markdown笔记(git提交带有emoji的commit描述)

    用法:> git commit -m ' :tada: initial ' emoji来源:> ![gitmoji](https://gitmoji.carloscuesta.me/sta ...

  6. 转 无损转换Image为Icon

    不可取 var handle = bmp.GetHicon();    //得到图标句柄return Icon.FromHandle(handle); //通过句柄得到图标 可取 /// <su ...

  7. MySQL中You can't specify target table '表名'('sn_app_label') for update in FROM clause错误解决办法

    在有些时候有级联关系的数据放在了同一张表中,在写sql语句的时候可能会遇到这样的场景:我要插入两条数据,第一条是父节点,第二条是子节点,关联关系是父节点的自增长id:在写这样的sql语句时有可能就会出 ...

  8. vue实现组件切换的两种方式

    <!DOCTYPE html> <html> <head> <title>组件的切换</title> <meta charset=&q ...

  9. 本文可能是国内第一篇介绍C/4HANA Foundation的中文博客

    SAP C/4HANA从去年发布已经过去了一年多的时间,C/4HANA的从业者,对于这五朵云里包含的产品集,想必都有了一些了解. Jerry注意到,SAP C/4HANA Foundation这个概念 ...

  10. mamcached+(magent+keepalived高可用)搭建及理论概述

    目录 一.理论概述 工作流程 二.部署 环境 环境概述 部署 三.测试 四.总结 一.理论概述 Memcached服务器端与PHP-Memcache客户端安装配置_服务器应用_Linux公社-Linu ...