社会网络分析论坛 social network analysis forum

 找回密码
 立即注册
期刊投稿论文自测,和杂志社一致
论文中期gocheck自助检测
万方论文自助检测, 适合前期修改
知网论文检测, 结果跟学校一样
人群与网络2014视频免费下载
citespace使用流程图
【视频】方法论的关系主义群
edx人群与网络2014课件打包
林南的思想
社会网络分析入门书目
社会网络分析能回答哪些社会学问题
案例:通过微信找到犯罪团伙
边燕杰《社会网络研究专题》 大纲
社会网络分析参考资料
【Gephi 中文教程-练习数据】
【林南社会网络讲座录音】
【视频】gephi入门教程
大连接:社会网络是如何形成
社会网络分析及健康传播(18集)
!!!本站金币获取方式!!!
郑路:社会网络20讲
【视频】方法论的关系主义
pajek视频教程 35课
Gephi 0.9.2快速入门视频教程
查看: 3753|回复: 0
打印 上一主题 下一主题

Graph Visualization及常用工具简介

[复制链接]

683

主题

924

帖子

998万

积分

管理员

Rank: 9Rank: 9Rank: 9

金币
9977499
贡献
448
威望
448
积分
9980072
跳转到指定楼层
楼主
发表于 2017-5-29 07:40:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在很多算法中都需要用到图(Graph)这种数据结构,但图的计算机实现相对复杂,调试时往往无法直观的看出结果是否符合要求。图的可视化(Visualization)技术可以解决这个问题。这种技术可以将图的逻辑结构形象的在2维平面上表示出来,以进行直观的演示。比如这个demo可以形象的表达二叉排序树的插入过程。可能更重要的是,通过观察图的可视化结果,我们可以得到一些有意义的结论,从而指导进一步的工作和研究。比如下面的图(来源)是一个大程序的模块调用图。它可以直观的表示模块之间的依赖关系,从而为高效测试提供依据。这篇文将会简单介绍(Windows平台下)几种常用的GraphVisualization工具。


图1 Graph Visualization结果示例
NodeXL
NodeXL(Network Overview, Discovery and Exploration for eXceL)是一个微软的开源Graph Visualization工具。如同其他微软的优秀产品一样,学习前期上手非常快,后期又提供丰富的功能和灵活的定制性。


图2 NodeXL可视化结果示例(来源

NodeXL的使用非常简单。它是作为一个Excel模板安装的。安装完成后打开Excel,根据NodeXLGraph新建一个xls文档就可以使用了。在Vertex工作表中填入顶点的相关信息,Edge工作表中填入边的相关信息,单击边栏中的Show Graph,一切就搞定了。各种基本操作非常直观,自动布局算法的改动,顶点的手动拖动,缩放在GUI中都可以轻松完成。而顶点和边的各种属性也可以在xls表格中更改。

其中比较亮点的功能是可以用图片作为图的顶点。这就带来了很大的灵活性。比如下图是对The Big Bang Theory某一集构建的人物关系图,边的粗细代表人物关系的密切程度。对于很密切的关系,边被着成红色。


图3 TBBT某一集的人物关系图

此外,Excel这个平台为用户集中精力在分析数据本身上提供了很大方便。点点鼠标我们就可以方便的对数据进行批量处理:排序,过滤,绘制各种图表,而不用考虑如何编写代码,如何处理GUI事件。值得一提的是,NodeXL还支持多种输入格式,除了简单的复制粘贴外,还可以直接导入流行的UCINET, GraphML的格式文件,或者最简单的邻接矩阵等。它甚至还提供了自动收集twitter,flickr上的数据并绘制图表的操作选项。
当然,NodeXL还提供了高度的可编程性。在.NET中我们可以方便的调用它在Excel中体现的全部功能。事实上,Excel的模板只是它的一个wrapper而已。
Graphviz
看完了华丽的界面,强大的GUI,与Office无缝整合,.NET支持等一些列充满微软色彩的NodeXL,下面就是来自开源界且同样强大的Graphviz。Graphviz是典型的*nix编程思想的结晶,与NodeXL相比恰如LaTeX与Word般特色鲜明。命令行,stdin输入stdout输出,自己建立了一套描述图的语言,跨平台,方便获取的源码。它的每一个特性都彰显着*nix的优雅和强大。

因为是命令行工具用文本进行输入,因此可以方便的被各种平台调用。.NET, C/C++, Java, MATLAB… 不用考虑wrapper或者P/Invoke。而它用来描述图的语言同样简洁强大。比如这样的代码就会编译生成下图所示的图:graph g { a −− b −− c; }


图4 Graphviz输出示例

各个顶点和边的属性同样可以用语言指定。唯一比较遗憾的是似乎只支持eps格式的图片做顶点。作为从Windows平台出来的人,我也不晓得一般的图片能不能转成eps,怎么转。还希望各位指教。(经过Milo Yip的指点,发现可以用一般图片做顶点,在此表示感谢!)
其他
此外,比较有名的和图相关的库还有GLEE, Quick GraphUbiGraph。GLEE是MicrosoftResearch做的一个自动布局图(AutomaticGraph Layout)的库,NodeXL中就使用了它。Quick Graph是一个图的算法库,更偏重于图的相关算法。UbiGraph是一个非常强大的GraphVisualization的库,文章开头的二叉排序树的demo就来自于它,但由于不支持Windows而且似乎需要配置服务器所以就没能试用了。

这篇文主要介绍了Graph Visualization是什么,有什么用,以及可以调那些库来实现。感觉Graph Visualization还是一个很有意思的东西,把一些数据可视化一下说不定就会有一些有意义的发现。

回复

使用道具 举报

QQ|Archiver|手机版|小黑屋|社会网络分析论坛 social network analysis forum ( 88876751 )

GMT+8, 2024-12-23 05:43 , Processed in 0.158868 second(s), 24 queries .

Powered by www.snachina.com X3.3

© 2001-2017 snachina.com.

快速回复 返回顶部 返回列表