作者:JUDGE_MENT

邮箱:gao19920804@126.com

CSDN博客:http://blog.csdn.net/sinat_23137713

最后编辑时间:2016.12.5  V1.1

声明:

1)该资料结合官方文档及网上大牛的博客进行撰写,如有参考会在最后列出引用列表。

2)本文仅供学术交流,非商用。如果不小心侵犯了大家的利益,还望海涵,并联系博主删除。

3)本人才疏学浅,难免出错,还望各位大牛悉心指正。

4)转载请注明出处。

一、纵向网络/动态网络是一种包括时间信息的简单网络。你可以想象一下关你的朋友关系网络;节点数和连接数随着时间的增长而增长,属性值也随之变化。如果每个人都有一个"孩子数"属性,这个属性也是可能会增长的《o(* ̄︶ ̄*)o, 还不去生孩子》。我们称之为动态属性,他们的值是与根据特定的时间段相关的。

    纵向网络

    为了使用gephi对这些特征进行建模,我们使用区间的概念来定义一段时间。有两种基本的方式来对纵向网络进行建模,一种是每个网络集合都有一个特定的时间点(一天,一个月,),或是网络片段中的每个元素都有其存在时间。这可以分别看作是离散时间连续时间的表示方式。本文中我们选择第二种方式,因为他更加灵活。
    举例来说:
    如果我们有一个三年包含三个点的网络。下面左边的是方法1(网络集合)在不同的三个时间点。右边是相应的方法2(每个元素)表示使用间隔。(右边n1的右区间是开的,因为这个点只在2008有,2009就没了)

    Gephi中你可以在“数据实验室”中看到时间区间是如何被创建的。如果网络是纵向的,将会有一个时间区间列。这列给出了元素的应该存在的时间区间。你可以通过在数据实验室配置对话框,开启展示时间区间图表选项,这样你就可以可视化了。

    二、 导入动态GEXF文件

      GEXF文件:XML格式,可扩展语言。包含动态网络(第二种方法)所有信息。

      你在GEXF中增加开始和结束的位置就是设置一个点或边的开始或消失。

      1、基本的例子:

        下面是一个2007-2009年有三个点的动态网络例子。

        <?xml version="1.0" encoding="UTF-8"?>
        <gexfxmlns="http://www.gexf.net/1.1draft"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.gexf.net/1.1drafthttp://www.gexf.net/1.1draft/gexf.xsd"version="1.1"><graphmode="dynamic"defaultedgetype="directed"><nodes><nodeid="n1"label="Node 1"start="2007"endopen="2009" /><nodeid="n2"label="Node 2"start="2007"end="2009" /><nodeid="n3"label="Node 3"start="2008"end="2009" /></nodes><edges><edgesource="n1"target="n2" /><edgesource="n1"target="n3"start="2008"/><edgesource="n3"target="n2"start="2008"endopen="2009"/></edges></graph>
        </gexf>

        注意以下几点:
        1. 我们将图模式设为“dynamic”,这是必须的,因为GEXF格式也可以展现静态图。
        2. 对于闭区间的就用startend;如果是开区间的就用startopenendopen
        3. 不强制一定要对于每一个元素都设定一个开始和结束时间。如果不设置自动创建一个[-infinity,+infinity]这么个时间间隔,从正无穷到负
        无穷。如果只有一个边界被定义了,像上诉代码第二条边似的,那么将会自动变成[2009,+inf].

          2、动态属性

            上面的例子告诉我们如何通过时间节点、边的添加和移除,来展现网络的拓扑结构。现在让我们来演示一下gephi如何展现随着时间变化的属性值。下面是一个例子,节点拥有一个价格属性。

            <gexfxmlns="http://www.gexf.net/1.1draft"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.gexf.net/1.1drafthttp://www.gexf.net/1.1draft/gexf.xsd"version="1.1"><graphmode="dynamic"defaultedgetype="directed"><attributesclass="node"mode="dynamic"><attributeid="price"title="Price"type="float"/></attributes><nodes><nodeid="n1"label="Node 1"start="2007"endopen="2009" ><attvalues><attvaluefor="price"value="25.5"start="2007"end="2008"/><attvaluefor="price"value="42.5"start="2008"/></attvalues></node><nodeid="n2"label="Node 2"start="2007"end="2009" ><attvalues><attvaluefor="price"value="12"start="2008"/></attvalues></node><nodeid="n3"label="Node 3"start="2008"end="2009" ><attvalues><attvaluefor="price"value="40.5"start="2008"end="2009" /></attvalues></node></nodes><edges><edgesource="n1"target="n2" /><edgesource="n1"target="n3"start="2008"/><edgesource="n3"target="n2"start="2008"endopen="2009"/></edges></graph>
            </gexf>

            attvalues:属性值
            注意以下几点:
            不强制到处设置属性值,为了防止没值,我们可以使用默认值。
            对于节点n2,他的价格“12”从2008年开始,但是没有定义结束时间,这会自动调整为[2008+infinity]

            3. 动态权值

              正常来说一个边的权值直接定义了一个边元素中,然后定一个值。定义了一个动态权值属性允许重写这个值,提供了对动态权值的支持。
              方法就是定义边的时候加上“weight”。然后,使用“attvalue”来设置weight的变化。跟节点属性那一样。

              <attributes class="edge" mode="dynamic"><attribute id="weight" title="Weight" type="float"/>
              </attributes>

              三. 时间列转换为动态网络

                问题是非常简单的,如何转换时间列为动态网络,例如如何转换一年的数值列成为一个动态网络。
                想象你和一些朋友的社交网络。每个节点都是一个朋友,一个属性列是你遇到一个朋友的日期。问题是我们怎样才能将这个列转换成一个动态的时间间隔,然后通过时间线探索整个网络。

                步骤1:点击数据实验室-合并列

                  步骤2:分别把左窗格跟时间有关的列移到右边。如果你有开始时间和结束时间,那么就将这两列移到右边。在下图中,'First Met'只是一个开始列。然后选择时间间隔在那个选择器当中。

                    注意,开区间似乎已经被弃用了

                    步骤3:选择哪列是开始,选择哪列是结束。如果没有结束时间,就留空。如果列是数字化的(整数,浮点型,长浮点型),那么就选择“parse numbers”。如果数据是string形式的,他们也可以被解析转换为时间间隔。我们的“fiist met”列就是一年中的某一天,就是一个数字而已。

                      四. 使用时间框架,导入多个静态的GEXF充当动态的GEXF

                        这个方法教你如何通过一些时间点(GEXF文件)创建一个纵向/动态网络。如果你有这么一个不同时间点的复杂网络,然后想去看随着时间改变网络和它的属性都是如何变化的,那么请看这个方法。
                        注意,这个方法的实现仍然处于试验阶段,而且可能不会在所有的情况下工作。一定要确认以下几点:

                        • 不同文件中,节点标识符完全要一样(至少标签要一致)。
                        • GEXF文件中设置为static
                        • gephi工作区要保持干净,不要有别的图
                        • 属性列在所有GEXF中都是一样的

                        1. 数据集

                        假如说我们有三个静态GEXF,分别是2007年的GEXF,2008年的GEXF和2009年的GEXF。
                        2007年的静态网络如下,注意价格属性:

                        <?xml version="1.0" encoding="UTF-8"?>
                        <gexfxmlns="http://www.gexf.net/1.1draft"version="1.1"><graphmode="static"defaultedgetype="directed"><attributesclass="node"type="static"><attributeid="price"title="Price"type="int"/></attributes><nodes><nodeid="1"label="Node 1"><attvaluefor="price"value="12"/></node><nodeid="2"label="Node 2"><attvaluefor="price"value="8"/></node><nodeid="3"label="Node 3"><attvaluefor="price"value="5"/></node></nodes><edges><edgesource="1"target="2"weight="1" /><edgesource="1"target="3"weight="2" /></edges></graph>
                        </gexf>

                        2008年的静态网络如下,节点“3”消失了,一个节点出现“4”。价格和边缘的权重也已经改变了。

                        <?xml version="1.0" encoding="UTF-8"?>
                        <gexfxmlns="http://www.gexf.net/1.1draft"version="1.1"><graphmode="static"defaultedgetype="directed"><attributesclass="node"type="static"><attributeid="price"title="Price"type="int"/></attributes><nodes><nodeid="1"label="Node 1"><attvaluefor="price"value="15"/></node><nodeid="2"label="Node 2"><attvaluefor="price"value="6"/></node><nodeid="4"label="Node 4"><attvaluefor="price"value="8"/></node></nodes><edges><edgesource="1"target="2"weight="4" /><edgesource="1"target="4"weight="3" /><edgesource="2"target="4"weight="1" /></edges></graph>
                        </gexf>

                        静态网络在2009年, 节点“3”回来了,节点“2”消失了, 并且再次改变价格。

                        <?xml version="1.0" encoding="UTF-8"?>
                        <gexfxmlns="http://www.gexf.net/1.1draft"version="1.1"><graphmode="static"defaultedgetype="directed"><attributesclass="node"type="static"><attributeid="price"title="Price"type="int"/></attributes><nodes><nodeid="1"label="Node 1"><attvaluefor="price"value="10"/></node><nodeid="3"label="Node 3"><attvaluefor="price"value="3"/></node><nodeid="4"label="Node 4"><attvaluefor="price"value="12"/></node></nodes><edges><edgesource="1"target="3"weight="5" /></edges></graph>
                        </gexf>

                        2. 导入Gephi

                          按照如下步骤,可以在一个空项目中导入你的这几个GEXF文件:
                          步骤1导入第一个GEXF文件,并在导入报告是选择Time Frame,单击OK。这将显示一个设置对话框。

                          步骤2选择一个日期或一个数字作为时间。默认选择是一个数字,这里我们把2007年输入。单击OK,文件导入。
                          步骤3: 现在你重复步骤2。只是相应的时间,第二个文件选择2008、..2009等。
                          结果就会得到在Gephi里出现的纵向/动态网络,节点和边有他们相应的时间段。同样的,所有属性都是动态属性。数据集中的“价格”属性是DYNAMIC_INTEGER格式的列。此外,边的权重也是动态的。

                          使用Gephi绘制动态网络的三种方法相关推荐

                          1. ps自定义形状工具_PS教程——用PS绘制虚线的三种方法

                            点线面是平面构成的基本元素,而线条在平面设计中亦有规整分割版面.装饰造型的作用,能大幅提升版面的可读性.学会用PS绘制线条是每个自学平面设计初学者的基本功,本篇平面设计学习日记, @酷coo豆一孔之见 ...

                          2. 用R在地图上绘制网络图的三种方法

                            作者:严涛浙江大学作物遗传育种在读研究生(生物信息学方向)伪码农,R语言爱好者,爱开源 又到了亲爱的严涛老师时间: 诺奖文章里面的动图布局教程来了!! R包ggseqlogo |置换序列分析图 ggp ...

                          3. 使用matlab绘制分段函数的三种方法

                            找到了三种绘制分段函数的方法,绘制如下函数  第一种方法: %第一种分段函数 t1=0:0.1:10; v1=t1; t2=10:0.1:20; v2=0*t2+10; t3=20:0.1:30; v ...

                          4. excel单元格斜线_做个高级表格,绘制斜线表头的三种方法,看你可以学会几种?...

                            工作中做表格经常会遇到需要绘制斜线表头的时候,今天我们具体说下斜线表头的绘制方法 先看下效果图 绘制斜线表头方法一 1. 选中单元格-------插入------形状-----直线-----在单元格里 ...

                          5. 独家 | 将时间信息编码用于机器学习模型的三种编码时间信息作为特征的三种方法...

                            作者:Eryk Lewinson 翻译:汪桉旭 校对:zrx本文约4400字,建议阅读5分钟 本文研究了三种使用日期相关的信息如何创造有意义特征的方法. 标签:时间帧,机器学习,Python,技术演示 ...

                          6. canvas 判断哪个元素被点击_监听 Canvas 内部元素点击事件的三种方法

                            canvas内部元素不能像DOM元素一样方便的添加交互事件监听,因为canvas内不存在"元素"这个概念,他们仅仅是canvas绘制出来的图形.这对于交互开发来说是一个必经障碍,想 ...

                          7. python求1到n的乘积_Python实现矩阵相乘的三种方法小结

                            问题描述 分别实现矩阵相乘的3种算法,比较三种算法在矩阵大小分别为22∗2222∗22, 23∗2323∗23, 24∗2424∗24, 25∗2525∗25, 26∗2626∗26, 27∗2727 ...

                          8. word流程图整体怎么拆分_word流程图-不会做流程图?这三种方法超级简单!

                            在平时的办公过程中,我们一定是要会做流程图的,因为很多地方都需要使用到流程图,下面小编教大家三种方法做流程图,非常简单,一看就会! 一,在Word中制作流程图 1,新建画布 首先点击"插入& ...

                          9. python绘制笛卡尔心形线方程_canvas绘制爱心的几种方法

                            第一种方法:桃心形公式 代码实现的一种方法 使用桃心形方程绘制爱心 var canvas = document.querySelector('canvas'); var ctx = canvas.ge ...

                          最新文章

                          1. Java 基础数据类型
                          2. android属性动画作用范围,Android开发之动画效果浅析(一)
                          3. poj 2409 Let it Bead Polya计数
                          4. 参加了 InfoQ 的虚拟座谈会
                          5. golang程序员前景怎么样?Python、Java、go语言的优势互比
                          6. LightDM配置说明
                          7. 直播回放:巧用Webpack、Eui Compiler
                          8. 复杂的1秒--图解Google搜索技术
                          9. 走近计算机,走进二进制,爪哇国的诞生
                          10. 海底光缆是如何铺设出来的?
                          11. 2022年9月改名字这件事的流程亲历和体会
                          12. excel进阶:如何快速自动填充空白单元格上一行的内容
                          13. 1.计算机图形学 实验 线条(利用C语言图形函数绘图)
                          14. 依锥彻怕燎方跃涣牧叵邻牟辟岗俅
                          15. eclipse语言切换
                          16. 缺芯导致全球汽车减产超一千万辆
                          17. 信息技术计算机日历教案,〖原创〗小学信息技术《制作日历》说课稿
                          18. 最新Python赚钱思路,初学Python月入过万
                          19. 易优cms城市分站功能设置教程
                          20. 软件项目管理-第五章软件项目任务分解

                          热门文章

                          1. 计算机系统中设置保护系统还原,如何对电脑进行系统还原
                          2. 研究生应该常去的网站
                          3. ubuntu下安装电驴
                          4. .NET周报【10月第1期 2022-10-11】
                          5. Linux 如何查看内存使用情况
                          6. 智能化“决战”开启新周期:大众“向上”、蔚来“向下”
                          7. 《用莫比乌斯带巧解内接矩形问题:拓扑学的用处》学习笔记
                          8. 【渝粤教育】电大中专新媒体营销实务_1作业 题库
                          9. 服务器硬盘1t等于多少g,1t硬盘实际上等于多少个g?
                          10. 科大讯飞总裁办实习第三周