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小图图集的生成器
- #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()

NetworkX系列教程(2)-graph生成器的更多相关文章
- NetworkX系列教程(11)-graph和其他数据格式转换
小书匠 Graph 图论 学过线性代数的都了解矩阵,在矩阵上的文章可做的很多,什么特征矩阵,单位矩阵等.grpah存储可以使用矩阵,比如graph的邻接矩阵,权重矩阵等,这节主要是在等到graph后 ...
- NetworkX系列教程(1)-创建graph
小书匠Graph图论 研究中经常涉及到图论的相关知识,而且常常面对某些术语时,根本不知道在说什么.前不久接触了NetworkX这个graph处理工具,发现这个工具已经解决绝大部分的图论问题(也许只是我 ...
- NetworkX系列教程(8)-Drawing Graph
小书匠Graph图论 如果只是简单使用nx.draw,是无法定制出自己需要的graph,并且这样的graph内的点坐标的不定的,运行一次变一次,实际中一般是要求固定的位置,这就需要到布局的概念了.详细 ...
- NetworkX系列教程(3)-手动创建graph
小书匠Graph图论 不可否认,日常中我们使用最多的还是,使用自己的数据去手动创建自己的图形,而不是使用生成器,现从给graph添加点和边入手,讲解手动创建graph. 目录: 3.给graph添加节 ...
- NetworkX系列教程(7)-对graph进行分析
小书匠Graph图论 graph构建完成后,对graph的连通等属性进行分析. 目录: 8.对图进行分析 8.1连通子图 8.2弱联通 8.3强连通 8.4子图 8.5条件过滤 注意:如果代码出现找不 ...
- NetworkX系列教程(6)-对graph进行操作
小书匠Graph图论 graph生成后,除了有查看操作,还有移除等操作,还有其他更多操作,具体可以看这里.下面将比较graph操作前后的不同. 目录: 7.对图进行操作 7.1移除某些节点和边 7.2 ...
- NetworkX系列教程(5)-查看graph的信息
小书匠Graph图论 有时候graph建好后,我们并不清除该graph内节点的,边的信息,这就需要调用函数去查看了. 目录: 6.查看Graph的信息 6.1查看graph内节点,边的 6.2查看gr ...
- NetworkX系列教程(4)-设置graph的信息
小书匠Graph图论 要画出美观的graph,需要对graph里面的节点,边,节点的布局都要进行设置,具体可以看官方文档:Adding attributes to graphs, nodes, and ...
- NetworkX系列教程(10)-算法之五:广度优先与深度优先
小书匠Graph图论 重头戏部分来了,写到这里我感觉得仔细认真点了,可能在NetworkX中,实现某些算法就一句话的事,但是这个算法是做什么的,用在什么地方,原理是怎么样的,不清除,所以,我决定先把图 ...
随机推荐
- react实现设置答题器选项个数
一,设置答题器选项import React, { useState, useEffect } from 'react' import PropTypes from 'prop-types' impor ...
- 安装CentOS7服务器
1. 基本安装 https://www.cnblogs.com/kreo/p/4396825.html 2.安装补充 防火墙 / FTP / Nginx https://www.cnblogs.com ...
- Python TypeError: __init__() got multiple values for argument 'master'(转)
转自:https://stackoverflow.com/questions/33153404/python-typeerror-init-got-multiple-values-for-argume ...
- •C#进阶系列——WebApi接口测试工具:WebApiTestClient
阅读目录 一.WebApiTestClient介绍 二.WebApiTestClient展示 三.WebApiTestClient使用 1.如何引入组件 2.如何使用组件 四.总结 正文 前言:这两天 ...
- shell 学习笔记3-shell变量扩展
一.特殊位置参数变量 1.特殊位置参数变量 在shell中比如:$0.$1.$#,等被称为特殊位置参数变量,当命令行.函数.脚本执行等处传递参数时,就需要使用位置参数变量 参数说明如下: 2.示例$1 ...
- VsCode开发Angular的必备插件
1 概述 一般个人开发或者小公司开发都会使用破解版软件,除非比较尊重正版且不太缺钱的人才会用正版,但是大型公司有严格的规定,不允许员工使用盗版软件. 这时候我就不得不从WebStorm转向VsCode ...
- PIE二次开发——大气校正
窗体设计: 代码: private void button_src_Click(object sender, EventArgs e) { OpenFileDialog openFile = new ...
- java输出月的日历控制台
LocalDate date=LocalDate.now(); int month=date.getMonthValue(); int today=date.getDayOfMonth(); date ...
- SVN上传本地项目到服务器
1. 在服务器新建一个文件夹目录: 2. 将新建的目录在本地check out下来: 3. 将自己的项目拷贝到check out下来的文件夹下: 4. 右键点击svnàAdd,选择所有添加: 5. 右 ...
- SpringBoot properties和yml的区别
一.先附一个yml文件的解析步骤 1.Maven依赖 <dependency> <groupId>org.yaml</groupId> <artifactId ...