网络数据可视化与分析利器:Gephi 中文教程(全彩)(txt+pdf+epub+mobi电子书下载)


发布时间:2020-07-27 06:38:53

点击下载

作者:刘勇

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

网络数据可视化与分析利器:Gephi 中文教程(全彩)

网络数据可视化与分析利器:Gephi 中文教程(全彩)试读:

前言

关于Gephi

Gephi用于处理任何能够表示为节点和边的网络数据,比如社会、社交关系、信息节点、生物、生态、物理等网络的数据。这些网络数据在Gephi中会以符合图论对于图定义的形式表示。Gephi把网络数据转换为图以后,就可以用图论的术语、规范对图进行基本的描述,比如节点与边的数量、有向图或无向图、边有权重或无权重、是否多图等;也可以进行基本的计算,比如节点的度、图的平均度、图密度、图的直径与半径、图的连通度、两点间的最短路径、图的平均路径长度等。在这些基本定义的基础上,就能够用网络科学的方法对其进行分析与处理:一种是对图进行网络特性的统计分析,包括节点的介数中心度、亲密中心度、离心度、PageRank、特征向量中心度、节点与网络的平均聚类系数,以及图的连通分量及模块化划分;另一种是通过不同方式的布局,对图进行可视化处理,然后对图进行解读与分析;还有一种是通过对生长网络的动态模拟进行解“读”与分析。

关于本书

本书由发布在网上(www.udemy.com/gehpi)的《Gephi中文教程》经整理、改编、扩充、升级而成。“Gephi中文教程”是目前国内一套系统、完整地介绍Gephi使用方法的MOOC课程,在制作上力求简洁而具体地描述各主要操作环节的关键步骤,能够使任何专业的学习者都可以较容易地掌握。教程2012年2月发布以来,至今已有将近13000人报名学习,且人数还在不断增加,其中不乏来自高等院校、研究机构、新媒体的学习者。

本书在“Gephi中文教程”的基础上,基于目前最新的Gephi 0.9.1版全新改写,不仅扩充了大量内容,而且更加深入。另外,为适应纸质载体的性质而采用图文并排的方式进行介绍。目的是希望读者在即使没有打开,甚至在没有安装Gephi的情况下,仍然可以充分地了解Gephi的功能及操作方式。

本书的内容大致可以分为3个部分。

第一部分是Gephi简介,包括第1章和第2章。第1章主要介绍Gephi是做什么的、Gephi的特性和简史,有Gephi两位开发者的对话。在对话中Gephi创建者Mathieu Jacomy阐述了创建Gephi的原因、在关键技术选型中的思考、开发Gephi所遵循的原则等,也探讨了Gephi的本质问题。整个对话生动地描述了Gehpi诞生的历程,虽然是谈论一个技术产品,但充满了人文气息。第2章介绍了如何安装Gephi及相应的Java支持环境。

第二部分是Gephi的基本操作,包括第3章到第10章。第3章介绍了Gephi大体的操作流程;第4章介绍了Gephi的图窗体,包括在图窗体中的操作工具;第5章是对Gephi所使用数据的介绍;第6章到第9章介绍了Gephi的4个重要的图处理功能;第10章介绍了Gephi的输出与预览的操作。通过学习这部分内容,就可以完成Gephi操作的一个完整流程了。

第三部分是Gephi扩展操作的介绍,包括第11章到第16章。第11章到第15章介绍节点、边与标签颜色的选取,空间的表示方法,CSV的相关操作,动态数据的处理、插件的管理;第16章介绍了对Gephi进行二次开发的方法,包括改进Gephi代码、开发Gephi插件、利用Gephi工具箱开发独立程序的方法。

致谢

网站上的“Gephi中文教程”的第一节课程于2012年2月20日发布,从课程发布至今,获得了众多人士的帮助与支持,对于所有帮助和支持的人士表示感激。

感谢各位陪同“Gephi中文教程”走过的时光,“Gephi中文教程”能一路走到现在,也有赖于很多人的帮助。感谢Isaac Mao,他是一个有远见又对细节有深刻思考的人,是他早在2010年的时候就提示我可以了解一下Gephi,才使我开始对Gephi进行探索,也开始了对数据可视化的关注。Isaac Mao其实在很早的时候就关注了Gehpi,他在Google阅读中也分享过Gephi在一些事件(事物)上的应用。

感谢分享实验室中的两位同伴,Clément Renaud和苑明理。Clément Renaud在我制作PPT或拍摄视频碰到问题时,总能提供及时而有用的帮助;苑明理在笔者表述与技术有关的问题时,发现有错误就会快速而直接地提出来,正因他的及时纠正使笔者免于犯一些错误。

感谢两位Gephi开发者,杜一和Yudi Xue。他们在笔者学习Gephi的过程中给予了很多指导,提出了很多建议。

感谢统计之都的陈丽云,她也与我分享过一些Gephi有关的经验,拓展了我对于Gephi的很多认识。

感谢开发者Gabe,是他分享的代码,使我亲自挖掘到了数据,并对进一步的使用增加了很大的信心。

感谢Smile,在我早期准备教程时,Smile不仅看了很多底稿,还提供了大量的修改建议,并给了我第一次向他人介绍Gephi的机会。

感谢Oliver Ding(丁健),恰好在Gephi中文教程将要制作完成时,发起了“2012年中文网志云年会”,推出了“中文网志大学”,并把“Gephi中文教程”列入第一批开放课程,使学习Gephi的人越来越多;另外更重要的是也使“Gephi中文教程”像是坐上了一艘更大的船,航行起来驶得更远。

感谢杜一接受邀请,撰写了本书的第16章,介绍了3种不同的二次开发的方法。检查了全书内容,尤其是布局、统计等重要的章节,并提出了很多宝贵的修改建议。

感谢那些重视Gephi的组织和人们,他们在给予我帮助的同时也使更多的人获得了了解Gehpi的机会:感谢ICCD国际传播促进中心以及吴薇女士等;人大经济论坛以及赵坚毅老师;长策智库以及卢宜宜女士;北京中医药大学信息中心以及马星光老师;中国美术学院跨媒体艺术学院与网络社会研究所以及推荐者周曙光老师;武汉大学镝次元数据传媒实验室以及刘真女士等。

感谢杨磊馆长推荐在2013年“智慧城市:北京国际设计周”参展。感谢王晴邀请我参与小日子及活动家可视化产品的设计。感谢上海外国语大学吴瑛老师提供的数据分析协作的机会。感谢安人心智的阳志平老师对我写作的鼓励与支持,并安排李璧琴女士组织开智翻译团队翻译本书第1章中关于Gephi开发者访谈的内容。感谢电子工业出版社的高洪霞编辑在纷繁的网络中发现了Gephi,并促成了这本书的诞生。感谢那些创造了众多美好的应用(XML、CSV、图论等),分享很多不同格式的图形文件的人们,如果没有他们的存在以及他们创造的应用,Gephi也不会如此美好。

感谢我的亲人们对我写作的关注,感谢我母亲无私地为我付出那么多。感谢我女儿在我最早录制视频教程时,就听我讲了相关事情此起彼伏的演进过程,我希望她能从中更多地看到事物之间是如何关联的,也能更好地找到自己的成长路径。

感谢Gephi的开发者们,在漫长的岁月中持之以恒地雕琢这款作品。

感谢那些位于网络科学前沿的研究者们,是他们的不懈追求才使得更深入的网络发现不断地涌现,照耀人类过去与未来的路。

感谢正在或将要读到这本书的人们。感谢“Gephi中文教程”的学习者,每当意识到你们的存在,总能使我增添更多制作“Gephi中文教程”的动力。很多时候,在我的脑海中经常闪现出一幅图,是不同的连线跨古至今使我们融为一体,而我们自己仅仅是其中的一个连接点,但我们每个人都可以与更多的节点建立联系。

而整体上,这个世界上的各种事物,有形的甚至是无形的,也都有可能建立更多的联系,疏导更多的信息与能量的流动,自发形成正(真)气流畅,而淤气自消的形态,并曲线优美地演进着。而对于具体的情形,也许我想说:“我们如果有更好的连接方式,可以形成更好的演进关系,这正好像Gephi图形的优美源于连线对节点的贯穿。”随着网络科学的深入发展,必将不断深刻地揭示各种社会与自然网络运行的规则,理解与掌握这些规则,会使人们更多地了解世界是如何运行的,也能在做选择的时候有更多的参照。所以,也希望与关注世界变化的人们一起,或者可以借着Gephi,对网络科学有更多的了解与认识,从而为更好地改善世界做准备。

要感谢的人实在太多,再次感谢帮助和支持我的各位,谢谢大家!

联系反馈

欢迎各位读者对本书提出宝贵的批评或建议,可以通过以下方式提交。

• 通过GitHub提交问题:https://github.com/ooof/Gephi/issues/。

• 通过邮件提交问题:digitip+gephi@gmail.com。

如果想了解更多我们关于Gephi的信息,可以浏览以下网站。

• Gephi开放研究网络:http://gephi.strikingly.com/。

• Gephi G+页面:https://plus.google.com/u/0/105972204587241689146。

• Gephi中文教程:https://www.udemy.com/gephi。

• 数据可视化开放发布:https://dvop.github.io/。第1章Gephi简介

本章介绍Gephi的基本情况,包括Gephi是做什么的,着重解释“网络”与“分析”这两个词在Gephi中的含义,同时介绍Gephi的特性及Gephi开发简史。1.1Gephi是做什么的

如果用一句话定义Gephi,也许可以定义为:“Gephi是一款用于网络分析的软件”,这句话看起来很简单,但应该如何理解?下面试着从“网络”与“分析”两个关键词做出一个解释说明。1.1.1 Gephi分析怎样的“网络”

在现在的网络年代,各式各样的网络层出不穷,相信大多数人对于网络都有着不同程度的认识与理解。而Gephi所能处理的网络,应该说与人们所理解的网络基本符合。人们已经具有或者能够想象到的任何网络基本上都可以用Gephi进行处理。

Gephi在处理网络时,需要把网络转换为节点与边这样一种简化的形式。这种用节点与边表示一组事物之间关系的方式,来源于图论。1736年,瑞士数学家欧拉(Leonhard Euler)在他的一篇论文中讨论了Knigsberg(七桥问题),由此产生了一个全新的数学分支——图论(Graph Theory)。

Gephi还提供网络三维与四维的支持,即不仅可以建立三维结构的网络,还可以建立节点与边具有生命期的四维网络,而这种动态网络,以及Gephi内置的一些对网络研究的模块也为时下正引领多学科拓展的新兴学科——网络科学,提供了研究的基础。

一般认为图论也是网络科学的起源。到1936年之前,图论在创立后的200年间一直处于停滞状态,直到1960年数学家Erdos与Renyi发布ER(Erdos-Renyi)随机算法才开始复兴。随后,社会发现小世界的六度空间现象,激发了人们对网络结构的兴趣,物理学家们也加入进来。1999年巴拉巴西(Albert-László Barabási)与他的学生发现无尺度网络现象并揭示出:“真实网络由两个定律支配着,生长机制和偏好连接”,且在多个领域的网络证实。

以上对于网络发展进程的描述,也是对Gephi所研究的“网络”是什么样的一个说明,接下来将介绍Gephi对于这些网络可以提供什么样的“分析”。1.1.2 Gephi怎样“分析”网络

Gehpi提供的分析可以分为两种,一种是通过不同的布局算法(操作方法详见第7章)按照一定的方式排列节点在图中的位置,并从节点的位置对网络做出解读,也就是直接把关系转换为图,并以图形的方式研究网络;另一种是通过不同的统计算法(操作方法详见第9章)根据节点与边的不同连接关系,用不同方式进行计算,计算的内容包括网络的总体特征、网络的模块化、节点的中心度、节点的路径特征、节点的动态度等。这些统计得出的值会存储到节点或边的数据中,并在外观(操作方法详见第6章)中作用于节点与边,最终也是显示在图形上,供研究发现网络的特性。

Gephi就是通过以上两种方式进行网络的分析,并且在新的Gephi 0.9.0与Gephi 0.9.1版本中,也把动态网络支持作为数据的标准配置,再考虑Gephi本身的开放性,这样的支持,也会为动态网络研究插件的开发留下更多的机会。

可以这样区别Gephi与图论、网络科学三者的关系:网络科学继承了图论中对于图的定义,使用相同的概念与术语,也有部分相同的研究内容;Gephi也继承了图论中对于图的定义,使用相同的概念与术语,也有部分相同的研究内容,且包括网络科学中对于网络研究的模式与方法。Gephi主要用于网络分析。1.2Gephi基本情况1.2.1 Gephi特性

• 基于Java开发。

• 开源、免费。

• 多平台支持,支持Mac OS X、Windows、Linux这3种不同的操作系统。

• 多国语言支持,目前支持英语、法语、西班牙语、日语、葡萄牙语(巴西)、俄语、中文简体、捷克语、德语共9种语言。

• 采用开放协议发布,Gephi支持开放的CDDL 1.0[1.1]与GPLv3[1.2]双重版权协议发布。1.2.2 Gephi开发简史

• 2006年,法国巴黎政治学院的教师Mathieu Jacomy开发出了Gephi的前身 Graphiltre。

• 2007年9月,Graphiltre更名为Gephi 0.5发布。

• 2008年9月2日,推出Gephi 0.6 Beta。

• 2009年3月1日,Gephi 0.6 Beta 2发布。同年创建GEXF规范,建立Gexf.net。

• 2010年10月1日,Gephi联盟成立,Gephi从此由Gephi联盟运营维护,且推出Gephi 0.7 Beta。

• 2011年10月17日,推出Gephi 0.8。

• 2012年3月29日,推出Gephi 0.8.1。

• 2013年1月3日,推出Gephi 0.8.2。

• 2015年12月20日,重写核心代码,推出Gephi 0.9.0。

• 2016年2月15日,推出Gephi 0.91。1.2.3 Gephi的基本链接

• Gephi官方网站:https://gephi.org/。

• 旧应用商店(Gephi 0.9.0版本之前的插件):https://marketplace.gephi.org/。

• 新应用商店(Gephi 0.9.0版本之后的插件):https://gephi.org/plugins/#/。

• Gephi Blog:https://gephi.wordpress.com/.

• Gephi Twitter:https://twitter.com/gephi.1.3Gephi创始人访谈:符号学的重要性

本节全文转载Gephi两位开发者的对话,在对话中Gephi创建者Mathieu Jacomy阐述了创建Gephi的原因、关键技术选型中的思考、开发Gephi所遵循的原则等,并探讨了Gephi的本质问题,整个访谈生动描述出了Gephi诞生的历程。经访谈者双方授权翻译发表。原文来源:https://gephi.wordpress.com/2010/02/01/gephi-initiator-interview-how-semiotics-matter/。

原文发布日期:2010年2月1日

Sebastien Heymann:今天我很荣幸地来采访Gephi团队的一名特殊的成员——Mathieu Jacomy。Mathieu是一名工程师,是WebAtlas NGO的创始人之一,也是巴黎政治学院的一名教师,目前正主持着由梅森科学基金会和巴黎高等电信学校合作的TIC移民项目。他是“Navicrawler”软件的主要开发者,开发了第一版Gephi的原型。

问题1

Sebastien Heymann:Mathieu Jacomy,你好!你在2006年创建了Graphiltre,第一版Gephi原型,请问,你开发又一款网络分析软件的目的是什么?

Mathieu Jacomy:你好!很高兴能回答你的问题,希望我们的读者有兴趣了解更多有关Gephi的信息。开发这款软件的时候,我正在分析大量的网络,但已有的免费工具并不好用。这就是我开始创建自己的工具的原因。

我没有钱使用专业的工具,并且我需要了解软件具体是如何工作的,开源、免费的软件很好地满足了这些需求。我那时使用的是Eytan adar自己开发的GUESS,这是一个很棒的工具。我的需求几乎和他一样,若不是他的GUESS,很难想象我该如何开展我的工作。

GUESS同样提供大量的插件和工具包的接口,并且由于其基于Python开发的特性,拥有比底层编程语言(如C、Java)更良好的用户交互操作。GUESS相比CytoScape[1]的缺陷在于其更新较慢,并且和生物学领域的结合不紧密,然而GUESS支持大量的插件包,使得它本身软件的不足得到弥补。其另一大特点在于提供命令行模式进行可视化操作,对部分用户群来说更方便。

当然,这款软件也有美中不足的地方,那就是不能进行所需的改动。我无法轻易地查看网络子结构,也很难输出漂亮的图像。我当时做梦都想拥有一款“网络专用的Photoshop”、一款以可视化为导向的软件,而不是脚本导向的软件。

为了更好地了解我所说的,我们不妨来看看布局的过程。就一些有名的软件,如Pajek或GUESS而言,它们都有称为“布局”、“力矢量”或“能量模型”的算法。这些算法确定了网络的形状,是构建清晰的可视化过程中最关键的部分。我们在图中看到的子结构或“模式”在很大程度上取决于算法和所选的设置。但与此同时,大多数用户也希望能够快速查看网络的全局形状,他们可能意识不到按照他拥有的时间、想要的质量、图形大小、度分布和他想要查看的子结构来选择最适合的算法。至关重要……我选算法的时候很认真,但即便我理解这些算法的原则和特点,还是不明白它们是如何转化为网络的,也不能评估它们的差异。

为什么不能评估?因为在这些软件中你没办法做到在算法运行时调整网络、在算法运行时修改设置。有时,你甚至在算法运行时连图都看不到。怎么知道软件中发生了什么?于是我开始设计一款可以做到这一点的软件。但类似的问题又出现在其他方面,如筛选过滤、图像输出等步骤……Pajek的设计是从数学角度进行的。GUESS更方便用户使用,但还做得不够。我并不想为数学专家设计软件,我想做一款真正能帮助人们探索和理解网络的工具。一款“前无古人”的专业工具。

这就是我设计Graphiltre的初心,构建一款探索网络的系统。这样你就可以通过屏幕上显现的内容了解你正在做的事情,无须输入,哪怕一行代码就可以做任何想做的事情(包括对网络进行筛选过滤)。

问题2

Sebastien Heymann:那么Graphiltre是如何满足你对技术和可用性的要求呢?

Mathieu Jacomy:Graphiltre能让我随心所欲地“玩转”网络。其中最有价值的是在网络布局时,你可以挪动一些节点,看有多少个节点随之而动、相应的局部和整体结构如何反应、反应的速度和方式如何。这个工作量十分巨大,但我很满足。当然,这只是个雏形,还有很多必要的特征没有包含在其中,这也是为什么我有时也用GUESS,毕竟我设计Graphiltre用的是和GUESS一样的网络文件格式(.gdf)。

如果你要问:“你为什么不在GUESS基础上构建你的工作呢?”,我曾很慎重地考虑过这个问题,毕竟重建一个系统是一件吃力不讨好的事情。

老实说我也无能为力。我试过了,可我无法完全理解GUESS的源代码。除此之外,还有一个重要原因是GUESS的内部构造(包括实时的脚本编辑功能、几种图形引擎、核心的JUNG网络处理库、SQL绑定等)在我看来有所不足。GUESS没有做出很好的取舍,许多不同的选项在GUESS中很少被选到。举个例子,尽管Piccolo[2]图形库没有针对网络进行优化,但也足够优秀了。不过仔细看你会发现,你可以把该模块换成TouchGraph[3]之类的模块。即使大部分用户使用作为默认选项的Piccolo,GUESS还是把系统设定成兼容所有并行库的方式。正因为它是由不同系统糅合而成的一个“黑盒子”,这类问题才在GUESS随处可见。

但不得不说我非常佩服GUESS,以及Eytan Adar和他的团队。他们不仅开拓了我的视野,还在很多层面上开拓了未来,和Pajek相比,GUESS为网络研究者们迈出了跨时代的一步。这是人们第一次可以脱离他们的想象,与网络进行实际互动,“上手摆弄”网络。因为显而易见的原因(时间成本,科研优先),GUESS很遗憾的没成为一个通用的公共软件,而沦落成了“科研辅助工具”。作为一名工程师,我用另一种视角创建了Graphiltre。

幸运的是,有了不同的设计,你可以从不同角度来思考事情,也可以切实地做出改进。GUESS有一个显示性能问题。当时我需要研究很大的网络,用GUESS需要处理很久。我测算了它计算一个网络布局所用的时间,发现是因为Piccolo无法显示大的网络。当然真要说的话,所谓“大的网络”也只是多于100个节点和1000条边,实际上还是很小的。当然,一个复杂的网络隐含了很多信息,但它的构成也仅仅是一些简单的形状,例如单色的线条、圆圈、方块,偶尔加上一些字母。大家都知道,电脑的CPU可以处理很多任务,但在简单重复性的任务上性能不佳。而GPUs却可以轻松处理视频游戏中的数以万计的多边形。所以我重新考量了Gephi的备选图形显示引擎方案。当务之急是解决图形显示性能,我想借助强大的GPU来改进布局算法。

有些游戏所使用的技术当真“惊艳”到我了,看起来这是个好主意。Graphil-tre诞生之初就采用了OpenGL引擎,在图形显示上速度远超GUESS。遗憾的是我并没有引入“GPGPU(通用图形处理器单元)”。如今很容易做到这一点了,当时我想着像“Havoc”这样的

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载