NetworkX系列教程(2)-graph生成器
本节主要讲解如何快速使用内置的方法生成graph,官方的文档在这里,里面包含了networkX的所有graph生成器,下面的内容只是我节选的内容,并将graph画出来而已.
声明,文中重复使用了以下代码块 ,现在统一注释在这里:
- plt.subplot(221) #生成2*2的组图,并且当前子图在2*2矩阵的第一个位置.第二个位置是222
- plt.title('complete_graph') #子图的标题
- nx.draw(G, with_labels=True, font_weight='bold') #将graph画出来
- plt.axis('on') #需要坐标轴,以便框住graph
- plt.xticks([]) #横坐标不需要刻度
- plt.yticks([]) #纵坐标不需要刻度
目录:
- 2.生成graph
- 2.1小图图集的生成器
- 2.2调用函数生成经典的graph
- 2.3格子graph
- 2.4各种已经被命名的小graph
- 2.5使用随机graph生成器
- 2.6社交网络
- 2.7社区
- 2.8树
注意:如果代码出现找不库,请返回第一个教程,把库文件导入.
2.生成graph
2.1小图图集的生成器
- #graph_atlas的图已经被定义,只需要按标号取出来就可以,下面将前10个取出来
- plt.subplots(2,5,figsize=(15,6))
- for ind in range(10):
- G.clear()
- G=nx.graph_atlas(ind)
- plt.subplot(2,5,ind+1)
- nx.draw(G,with_labels=True)
- #下面是设置图片
- plt.axis('on')
- plt.title('graph_atlas_%s'%ind)
- plt.xticks([])
- plt.yticks([])
- plt.show()
- plt.close()
2.2调用函数生成经典的graph
- plt.subplots(2,2,figsize=(15,6))
- K_5 = nx.complete_graph(5)
- plt.subplot(221)
- plt.title('complete_graph')
- nx.draw(K_5, with_labels=True, font_weight='bold')
- plt.axis('on')
- plt.xticks([])
- plt.yticks([])
- K_3_5 = nx.complete_bipartite_graph(3, 5)
- plt.subplot(222)
- plt.title('complete_bipartite_graph')
- nx.draw(K_3_5, with_labels=True, font_weight='bold')
- plt.axis('on')
- plt.xticks([])
- plt.yticks([])
- barbell = nx.barbell_graph(10, 10)
- plt.subplot(223)
- plt.title('barbell_graph')
- nx.draw(barbell, with_labels=True, font_weight='bold')
- plt.axis('on')
- plt.xticks([])
- plt.yticks([])
- lollipop = nx.lollipop_graph(10, 20)
- plt.subplot(224)
- plt.title('lollipop_graph')
- nx.draw(lollipop, with_labels=True, font_weight='bold')
- plt.axis('on')
- plt.xticks([])
- plt.yticks([])
- plt.show()
2.3格子graph
- G.clear()
- plt.subplots(2,3,figsize=(15,6))
- #二维网格图
- G=nx.grid_2d_graph(2,3)
- plt.subplot(2,3,1)
- nx.draw(G,with_labels=True)
- plt.title('grid_2d_graph')
- plt.axis('on')
- plt.xticks([])
- plt.yticks([])
- #n维网格图
- grid_graph = nx.grid_graph(dim=[1, 3, 4])
- plt.subplot(2,3,2)
- nx.draw(grid_graph,with_labels=True)
- plt.title('grid_graph')
- plt.axis('on')
- plt.xticks([])
- plt.yticks([])
- #m×n的六角形格子图。
- G=nx.hexagonal_lattice_graph(2,3)
- plt.subplot(2,3,3)
- nx.draw(G,with_labels=True)
- plt.title('hexagonal_lattice_graph')
- plt.axis('on')
- plt.xticks([])
- plt.yticks([])
- #n维超立方体图形。
- G=nx.hypercube_graph(3)
- plt.subplot(2,3,4)
- nx.draw(G,with_labels=True)
- plt.title('hypercube_graph')
- plt.axis('on')
- plt.xticks([])
- plt.yticks([])
- #三角格子图
- G=nx.triangular_lattice_graph(1,3)
- plt.subplot(2,3,5)
- nx.draw(G,with_labels=True)
- plt.title('hypercube_graph')
- plt.axis('on')
- plt.xticks([])
- plt.yticks([])
- plt.show()
2.4各种已经被命名的小graph
- plt.subplots(2,2,figsize=(15,6))
- petersen = nx.petersen_graph()
- plt.subplot(221)
- plt.title('petersen_graph')
- nx.draw(petersen, with_labels=True, font_weight='bold')
- plt.axis('on')
- plt.xticks([])
- plt.yticks([])
- tutte = nx.tutte_graph()
- plt.subplot(222)
- plt.title('tutte_graph')
- nx.draw(tutte, with_labels=True, font_weight='bold')
- plt.axis('on')
- plt.xticks([])
- plt.yticks([])
- maze = nx.sedgewick_maze_graph()
- plt.subplot(223)
- plt.title('sedgewick_maze_graph')
- nx.draw(maze, with_labels=True, font_weight='bold')
- plt.axis('on')
- plt.xticks([])
- plt.yticks([])
- tet = nx.tetrahedral_graph()
- plt.subplot(224)
- plt.title('tetrahedral_graph')
- nx.draw(tet, with_labels=True, font_weight='bold')
- plt.axis('on')
- plt.xticks([])
- plt.yticks([])
- plt.show()
2.5使用随机graph生成器
- plt.subplots(2,2,figsize=(15,6))
- er = nx.erdos_renyi_graph(10, 0.15)
- plt.subplot(221)
- plt.title('erdos_renyi_graph')
- nx.draw(er, with_labels=True, font_weight='bold')
- plt.axis('on')
- plt.xticks([])
- plt.yticks([])
- ws = nx.watts_strogatz_graph(30, 3, 0.1)
- plt.subplot(222)
- plt.title('watts_strogatz_graph')
- nx.draw(ws, with_labels=True, font_weight='bold')
- plt.axis('on')
- plt.xticks([])
- plt.yticks([])
- ba = nx.barabasi_albert_graph(10, 5)
- plt.subplot(223)
- plt.title('barabasi_albert_graph')
- nx.draw(ba, with_labels=True, font_weight='bold')
- plt.axis('on')
- plt.xticks([])
- plt.yticks([])
- red = nx.random_lobster(10, 0.9, 0.9)
- plt.subplot(224)
- plt.title('random_lobster')
- nx.draw(red, with_labels=True, font_weight='bold')
- plt.axis('on')
- plt.xticks([])
- plt.yticks([])
- plt.show()
2.6社交网络
- plt.subplots(2,2,figsize=(15,6))
- #返回Zachary的空手道俱乐部图。
- G.clear()
- G = nx.karate_club_graph()
- plt.subplot(1,2,1)
- nx.draw(G,with_labels=True)
- plt.title('karate_club_graph')
- plt.axis('on')
- plt.xticks([])
- plt.yticks([])
- #戴维斯南方女性社交网络。
- G.clear()
- G = nx.davis_southern_women_graph()
- plt.subplot(1,2,2)
- nx.draw(G,with_labels=True)
- plt.title('davis_southern_women_graph')
- plt.axis('on')
- plt.xticks([])
- plt.yticks([])
- plt.show()
2.7社区
- plt.subplots(2,2,figsize=(15,6))
- er = nx.caveman_graph(3,3)
- plt.subplot(221)
- plt.title('caveman_graph')
- nx.draw(er, with_labels=True, font_weight='bold')
- plt.axis('on')
- plt.xticks([])
- plt.yticks([])
- ws = nx.random_partition_graph([10,10,10],.25,.01)
- plt.subplot(222)
- plt.title('random_partition_graph')
- nx.draw(ws, with_labels=True, font_weight='bold')
- plt.axis('on')
- plt.xticks([])
- plt.yticks([])
- ba = nx.ring_of_cliques(8, 4)
- plt.subplot(223)
- plt.title('ring_of_cliques')
- nx.draw(ba, with_labels=True, font_weight='bold')
- plt.axis('on')
- plt.xticks([])
- plt.yticks([])
- red = nx.windmill_graph(4,5)
- plt.subplot(224)
- plt.title('windmill_graph')
- nx.draw(red, with_labels=True, font_weight='bold')
- plt.axis('on')
- plt.xticks([])
- plt.yticks([])
- plt.show()
2.8树
- #返回随机树
- G.clear()
- G = nx.random_tree(10)
- nx.draw(G,with_labels=True)
- plt.title('random_tree')
- plt.axis('on')
- plt.xticks([])
- plt.yticks([])
- plt.show()
转载于:https://www.cnblogs.com/wushaogui/p/9202283.html
NetworkX系列教程(2)-graph生成器相关推荐
- NetworkX系列教程(1)-创建graph
小书匠Graph图论 研究中经常涉及到图论的相关知识,而且常常面对某些术语时,根本不知道在说什么.前不久接触了NetworkX这个graph处理工具,发现这个工具已经解决绝大部分的图论问题(也许只是我 ...
- NetworkX系列教程(10)-算法之三:关键路径问题
小书匠Graph图论 重头戏部分来了,写到这里我感觉得仔细认真点了,可能在NetworkX中,实现某些算法就一句话的事,但是这个算法是做什么的,用在什么地方,原理是怎么样的,不清除,所以,我决定先把图 ...
- [js高手之路] es6系列教程 - 迭代器与生成器详解
什么是迭代器? 迭代器是一种特殊对象,这种对象具有以下特点: 1,所有对象都有一个next方法 2,每次调用next方法,都会返回一个对象,该对象包含两个属性,一个是value, 表示下一个将要返回的 ...
- Unreal Engine 4 系列教程 Part 5:制作简单游戏
原文:How to Create a Simple Game in Unreal Engine 4 作者:Tommy Tran 译者:Shuchang Liu 在本篇教程中,你将学习制作一个第一人称动 ...
- asp.NET自定义服务器控件内部细节系列教程四
如大家要转载,请保留本人的版权: /* *Description:asp.NET自定义服务器控件内部细节系列教程 *Auther:崇崇-天真的好蓝 *MSN:chongchong2008@msn.co ...
- thinkcmf5调用指定分类的二级_Tengine快速上手系列教程amp;视频:基于Python API的图片分类应用入门丨附彩蛋...
前言:近期,Tengine团队加班加点,好消息接踵而来,OpenCV 4.3.0发布,OPEN AI LAB AIoT智能开发平台Tengine与OpenCV合作共同加速边缘智能,Tengine再获业 ...
- JavaBeginnersTutorial 中文系列教程·翻译完成
原文:JavaBeginnersTutorial 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远. 在线阅读 ApacheCN 学习资源 目录 ...
- python机器学习案例系列教程——最小生成树(MST)的Prim算法和Kruskal算法
全栈工程师开发手册 (作者:栾鹏) python数据挖掘系列教程 最小生成树MST 一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n 个结点,并且有保持图连通的最少的边. ...
- OpenAI API及ChatGPT系列教程1:快速入门
系列文章目录: OpenAI API及ChatGPT系列教程1:快速入门 OpenAI API及ChatGPT系列教程2:使用手册 OpenAI API及ChatGPT系列教程3:API参考(Pyth ...
最新文章
- zipfile java 解压速率,使用java.util.ZipFile在同一层次中解压缩zipfile
- 自动驾驶人的福音!Lyft公开Level 5部署平台Flexo细节
- integer比较_每日一题:Integer、int 的区别
- charles抓app包教程_charles关于手机APP抓包
- 微信支付现金红包接口(转)
- poj1969---找规律
- 谈谈实习期间应该注意的几点问题,助你早日拿到转正offer
- 看穿面试这件事儿……
- LintCode MySQL 1918. 第二高的球员的身高
- Jmock-使用ClassImposteriser扩展mock class对象
- vxetable显示html,vxe-table分页无法显示?
- MasterPages: Improved Version(翻译)
- 如何在本地管理和切换多个 github 账号?
- 智能翻译软件—人人译视界 for Mac
- VS2010:外部依赖目录错误,怎么办
- php商品详情显示页面代码,ecshop源码程序在购物车页面显示出商品的描述
- win10新建文件夹必须刷新才能显示
- 《Region Proposal by Guided Anchoring》论文笔记
- 单样本t检验、独立样本t检验、配对样本t检验_python_数据分析_7
- xms java_java xms xmx xmn xss解释
热门文章
- Android-图像识别项目OpenCV(2):运行官方例子中的脸部识别程序
- #python #jupyter notebook# to_excel将多个表格写入EXCEL一个sheet中
- 从零学习 InfiniBand-network架构(七) ——IB协议中数据如何传输
- 浅显理解Java泛型的super和extends
- 步步惊心的三文鱼财富
- 【OpenCV】imshow()和namedWindow()之间的关系,解决两个窗口问题
- java实现麦克风自动录音
- ARM9协处理器CP15及MCR和MRC指令
- 微信公众平台使用百度API查询天气预报
- 记一次Rider手写UnityShader_非图解基本的光照模型,包含ViewDir_NdotL高光和漫反射等等计算