从时间序列到图形的可见性算法。

visibility_graph的Python项目详细描述


此python包是 文章:From time series to complex networks: The visibility graph

安装

安装库,可能在virtualenv中:

$ pip install visibility_graph

应用程序编程接口

将序列作为列表传递,可见性图将返回networkX 无向图。节点包含其时间点上的震级。

>>> from visibility_graph import visibility_graph
>>> series = [0.87, 0.49, 0.36, 0.83, 0.87]
>>> g = visibility_graph( series )
>>>
>>> g.nodes()
[0, 1, 2, 3, 4]
>>> g.edges()
[(0, 1), (0, 3), (0, 4), (1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)]
>>>
>>> g.node[1]
{'mag': 0.49}

系列到边缘列表

提供了一个命令行脚本:

$ series2edgelist.py series.csv

其中series.csv是一个每行包含一个时间点的文件。一个 可以指定多个系列文件:

$ series2edgelist.py series1.csv series2.csv seriesN.csv

脚本还将从标准输入中读取一个系列:

$ cat series.csv | series2edgelist.py

边缘列表将打印到标准输出。所以这也许是明智的 收件人:

$ cat series.csv | series2edgelist.py > series.edgelist

要点

在这个图中,每个节点以相同的顺序对应于串联数据,如果在对应的数据之间存在可见性,则连接两个节点,也就是说,如果存在一个连接串行数据的直线,只要这个“可见度线”不与任何中间数据高度相交。 http://www.pnas.org/content/105/13/4972/F1.medium.gif

“更正式地说,我们可以建立以下可见性标准:如果放置在它们之间的任何其他数据(t c,yc)满足以下条件,则两个任意数据值(t a,ya)和(t b,yb)将具有可见性,并因此成为关联图的两个连接节点:”

http://www.pnas.org/content/105/13/4972/embed/graphic-2.gif

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java为新对象()保留了多少内存空间;   keytool错误:java。木卫一。IOException:安卓密钥库被篡改或密码不正确   java Recyclerview不可点击安卓 studio(可能是我的代码错误?)   爪哇警报每天早上5点   安卓为java循环中的json对象添加值   java NetBeans“与编辑器链接”功能   SQL Server与Java EE演练   如何在Java应用程序中嵌入迷你控制台?   java Pig UDF,在批处理过程中删除分布式缓存中的文件   javascript使用GWT关闭网络摄像头和灯光   将Eclipse开普勒SR1升级到SR2时发生java错误?   java使用HashMap计算数组中某些整数的数量   java如何保护Android代码不受反向工程的影响?   java为什么添加这个防御副本可以避免死锁?   java我无法上传文件,需要哪些jar文件?   在java中,同一个程序可以作为服务器运行,也可以作为其他程序的客户端运行?   java从内部记录访问非静态外部上下文   java如何在使用Hibernate时打印带有参数值的查询字符串   Java向量类未更新