小书匠Graph图论

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

目录:


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

3.给graph添加节点

  1. from math import ceil 


  2. #该函数由于显示一组graph,传上来的是一组graph和这些graph的描述. 

  3. def ShowGraph(glists,ginfo,rowsize=4): 


  4. #每行放rowsize个,计算可以放多少行 

  5. row=ceil(len(glists)/rowsize) 


  6. #定义组图 

  7. plt.subplots(row,rowsize,figsize=(15,3)) 


  8. #开始画图 

  9. for ind in range(len(glists)): 

  10. #定义子图 

  11. plt.subplot(row,rowsize,ind+1) 

  12. nx.draw(glists[ind],with_labels=True, font_weight='bold') 


  13. #设置图片 

  14. plt.title(ginfo[ind],fontproperties=myfont) 

  15. plt.axis('on') 

  16. plt.xticks([]) 

  17. plt.yticks([]) 

  18. plt.show() 

  1. #添加单个节点 

  2. G1=nx.Graph() 

  3. G1.add_node(1) 

  4. G1.add_node("spam") 


  5. #添加一组节点 

  6. G2=nx.Graph() 

  7. G2.add_nodes_from([2, 3]) 

  8. G2.add_nodes_from("spam") 


  9. #使用生成器 

  10. G3=nx.Graph() 

  11. H = nx.path_graph(10) 

  12. G3.add_nodes_from(H) 


  13. #注意:G1.add_nodes_from(H)表示用H中的节点表示G1这个graph,如果要往G1这个graph添加H这个graph,形成graph中的graph,可以使用以下命令 

  14. G4= nx.Graph() 

  15. G4.add_node(1) 

  16. G4.add_node(H) 


  17. glists=[G1,G2,G3,G4] 

  18. ginfo=['添加单个节点','添加一组节点','使用生成器','添加子图'] 

  19. ShowGraph(glists,ginfo) 


给graph添加节点

4.给graph添加边

  1. #删除前面的graph 

  2. G1.clear() 

  3. G2.clear() 

  4. G3.clear() 

  5. G4.clear() 


  6. #添加单边 

  7. G1=nx.Graph() 

  8. G1.add_edge(1,2) 

  9. G1.add_edge(3, 'm') 


  10. #添加一组边 

  11. G2=nx.Graph() 

  12. e=(2,3) 

  13. G2.add_edge(*e) 


  14. #添加多组边 

  15. G3=nx.Graph() 

  16. G3.add_edges_from([(3,4),(4,2)]) 


  17. #使用边生成器 

  18. G4= nx.Graph() 

  19. H = nx.path_graph(10) 

  20. G4.add_edges_from(H.edges) 


  21. #添加一组有权边 

  22. G5=nx.Graph() 

  23. G5.add_weighted_edges_from([('a', 'b', 5.0), ('b', 'c', 3.0), ('a', 'c', 1.0), ('c', 'd', 7.3)]) #边上权重显示看设置graph信息->指定边属性 


  24. glists=[G1,G2,G3,G4,G5] 

  25. ginfo=['添加单边','添加一组边','添加多组边','使用边生成器','添加一组有权边'] 

  26. ShowGraph(glists,ginfo,rowsize=5) 


给graph添加边

NetworkX系列教程(3)-手动创建graph的更多相关文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  8. NetworkX系列教程(5)-查看graph的信息

    小书匠Graph图论 有时候graph建好后,我们并不清除该graph内节点的,边的信息,这就需要调用函数去查看了. 目录: 6.查看Graph的信息 6.1查看graph内节点,边的 6.2查看gr ...

  9. NetworkX系列教程(10)-算法之五:广度优先与深度优先

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

随机推荐

  1. 12.Scratch编程小游戏——天上掉馅饼

    最意想天开的事,就是天降我们喜欢的食物,今天我们就来编写一个接馅饼的小游戏. 游戏规划: 1.用鼠标控制小猫的来回移动 2.甜甜圈从天而降 3.小猫接到绿色的甜甜圈减一分,接到红色的甜甜圈加一分,接到 ...

  2. GXOI/GZOI2019部分题解

    D1T1:与或和 对每位处理,问题变成所有内部不包含0/1的矩阵的个数,单调栈维护即可. #include<cstdio> #include<algorithm> #inclu ...

  3. java 线程并发(生产者、消费者模式)

    线程并发协作(生产者/消费者模式) 多线程环境下,我们经常需要多个线程的并发和协作.这个时候,就需要了解一个重要的多线程并发协作模型“生产者/消费者模式”. Ø 什么是生产者? 生产者指的是负责生产数 ...

  4. 实现CodeFirst自动数据迁移无需手动执行命令

    本主题假设您掌握了实体框架中 Code First 迁移的基本知识. 借助自动迁移功能,您无需对您所做的每一个更改都在程序包管理器控制台中手动Update-Database . 启用迁移 只需执行一次 ...

  5. Go 编译 && 工具

    编译和工具链 Go 的工具链非常丰富,从获取源码.编译.文档.测试.性能分析,到源码格式化.源码提示.重构工具等应有尽有 在 Go 中可以使用测试框架编写单元测试,使用统一的命令行即可测试及输出测试报 ...

  6. 解决 VUE项目过大nodejs内存溢出问题

    今天在启动vue项目的时候报了这样一个错误, 如图所示:频繁出现此种情况,项目太大,导致内存溢出,排除代码问题外,可参照以下方式解决 // 全局安装increase-memory-limit npm ...

  7. vscode左侧栏显示

    1.显示工具栏 点击文件,选择首选项,点击设置按钮 搜索workbench,勾选上Workbench> Activity Bar:Visble 勾选上后,工具栏就显示出来了 2.移动工具栏选中工 ...

  8. 详解介绍Selenium常用API的使用--Java语言(完整版)

    参考:http://www.testclass.net/selenium_java/ 一共分为二十个部分:环境安装之Java.环境安装之IntelliJ IDEA.环境安装之selenium.sele ...

  9. jquery中的ajax方法(备忘)

    参考:https://www.cnblogs.com/tylerdonet/p/3520862.html w3school:http://www.w3school.com.cn/jquery/ajax ...

  10. KVM虚拟机快照链创建,合并,删除及回滚研究

    1 QEMU,KVM,libvirt关系 QEMU QEMU提供了一个开源的服务器全虚拟化解决方案,它可以使你在特定平台的物理机上模拟出其它平台的处理器,比如在X86 CPU上虚拟出Power的CPU ...