Networkx-cycle
1.cycle_basis
cycle_basis 的函数原型:
cycle_basis(G, root=None)
需要传入两个参数
假设我们创建一个图
import networkx as nx
import matplotlib.pyplot as plt
G=nx.Graph() # 创建一个无向图
G.add_edges_from([(1,2),(2,3),(3,1),(2,4),(4,3),(3,1)]) # 构建边
nx.draw_networkx(G,pos=nx.spring_layout(G))
plt.show() # 画图
nx.cycle_basis(G,1) # 计算 cycle basis
我们把这个图画出来,我们其实可以发现几个环,[1,2,3] ,[2,3,4],[1,2,3,4]
我们来看下这个实验结果,它得到的是两个环
少了一个[1,2,3,4]
这个是因为我们调用的这个API cycle_basis 决定的 因为它指的就是这个循环中的最小圈
一个网络周期的基础就是循环的最小的集合,网络中的任何循环都可以写成是基于每个周期基础 cycle basis 的总和。
但是这个函数只适用与无向图。
2. simple_cycles
simple_cycles 找到有向图中的基本回路。 注意是找有向图中的基本回路。
一个简单simple 的周期,或者说是一个基本的回路(elementary circuit)。如果两个回路有着不同的循环排列,那么这两个基本的回路是不同的。
现在我们来构建一个图之后我们来尝试一下使用simple_cycles() 这个函数
这个函数的函数原型是:
simple_cycles(G)
G=nx.DiGraph()
G.add_edges_from([(1,2),(2,3),(3,2),(3,4),(4,2),(2,5),(5,6)])
nx.draw_networkx(G,pos=nx.spring_layout(G))
plt.show()
我们可以得到下面这个图
我们可以查看一下结果
在这里我们就不能使用我们的cycle_basis() 这个方法了,因为我们在这里构建的是有向图
在这里我们还引入了我们的nx.find_cycle(G)
它是通过深度优先遍历然后返回一个循环的边。得到的结果是边。
Networkx-cycle相关推荐
- Python数模笔记-NetworkX(1)图的操作
1.NetworkX 图论与网络工具包 NetworkX 是基于 Python 语言的图论与复杂网络工具包,用于创建.操作和研究复杂网络的结构.动力学和功能. NetworkX 可以以标准和非标准的数 ...
- python networkx教程_Python社交网络——NetworkX入门
import networkx as nx import matplotlib.pyplot as plt # 无向图网络 G1 = nx.Graph() G1.add_edge('A', 'B') ...
- networkx学习与使用——(3)路与圈
networkx学习与使用--(3)路与圈 路与圈 实例构图 路 最短路径 简单路 圈(环) 完整代码资源 参考 路与圈 前几个星期写论文去了,耽搁了更新.给自己一个小目标,每周坚持一更! 为了保证实 ...
- Linked List Cycle II
Given a linked list, return the node where the cycle begins. If there is no cycle, return null. Foll ...
- python networkx教程_如何在python中使用networkx绘制有向图?
我只是为了完整而把它放进去 . 我从marius和mdml中学到了很多东西 . 这是边缘权重 . 抱歉箭头 . 看起来我不是唯一一个说它无法帮助的人 . 我无法使用ipython笔记本呈现这一点我不得 ...
- python networkx绘制图
python networkx绘制图 1. 效果图 2. 安装 3. 源码 参考 这篇博客将介绍如何使用python,networkx绘制图. 1. 效果图 可调整点的大小,点是否有label,点的颜 ...
- 使用NetworkX绘制深度神经网络结构图(Python)
本文将展示如何利用Python中的NetworkX模块来绘制深度神经网络(DNN)结构图. 已知我们创建的DNN结构图如下: 该DNN模型由输入层.隐藏层.输出层和softmax函数组成,每一层的神经 ...
- 【LeetCode】142 - Linked List Cycle II
Given a linked list, return the node where the cycle begins. If there is no cycle, return null. Foll ...
- 解决load cycle count的一个偏方,告别硬盘卡卡响
load cycle count猛增,笔记本电脑硬盘喀嚓喀嚓响,我倒不担心硬盘寿命,但是实在烦人那声音,系统也时常被卡一下.我曾使用了hdparm -B 254 /dev/sda 的方法,但是硬盘升温 ...
- 一文读懂Python复杂网络分析库networkx | CSDN博文精选
作者 | yyl424525 来源 | CSDN博客 文章目录 1. 简介 安装 支持四种图 绘制网络图基本流程 2. Graph-无向图 节点 边 属性 有向图和无向图互转 3. DiGraph-有 ...
最新文章
- AlarmManager类的应用(实现闹钟功能)
- 【Java】I/O阻塞下的守护线程与程序计数
- 高可用之KeepAlived(2):keepalived+lvs
- linux 根目录分配多少好,Linux下硬盘怎么分区才合适:根分区(/)交换分区(/swap)和/boot分区需要多大...
- ajax跨域,json,jsonp
- Linux下5种动态库运行时搜索路径的方法
- linux加载显卡驱动模块,linux怎样加载显卡驱动,急,在线等
- java修改桌面背景_用Java更换Windows桌面壁纸
- 笔记本电脑拆机并更换固态硬盘的方法
- PYNQ官方镜像配置
- Facebook 的开源静态分析工具Infer
- python bar函数循环_python bar函数怎么使用
- 海店湾养生专家:被称为油料之王的“神奇的豆子”,你知道它吗?
- Line披露母公司Naver详情:去年营收28.4亿美元
- html中css的各种颜色对应的色号
- 中国石油大学《机械设计课程设计》在线考试
- 股票分析,利用线性回归实时预测股价,只需要提供股票代码即可爬取相应股票数据并建模
- 互联网 vs 区块链革命:早期的挑战
- 顺德美食-嘉信京华食街
- 运营小技能:最有效的公众号运营技能详解(持续更新中)