Gephi是一款优秀的复杂网络分析软件,支持导入多种格式的文件。gexf格式是Gephi 推荐的格式,基于 XML。本文是一个用python写的简单Demo,示例如何生成一个典型的gexf格式文件。代码基于pygexf包(下载地址:https://github.com/paulgirard/pygexf)。 代码很简单不做解释。

Python 代码:

  1. import sys,pprint
  2. from gexf import Gexf
  3.  
  4. # test helloworld.gexf
  5. gexf = Gexf("Gephi.org","A Web network")
  6. graph=gexf.addGraph("directed","static","A Web network")
  7.  
  8. atr1 = graph.addNodeAttribute('url',type='string')
  9. atr2 = graph.addNodeAttribute('indegree',type='float')
  10. atr3 = graph.addNodeAttribute('frog',type='boolean',defaultValue='true')
  11.  
  12. tmp = graph.addNode("","Gephi")
  13. tmp.addAttribute(atr1,"http://gephi.org")
  14. tmp.addAttribute(atr2,'')
  15.  
  16. tmp = graph.addNode("","Webatlas")
  17. tmp.addAttribute(atr1,"http://webatlas.fr")
  18. tmp.addAttribute(atr2,'')
  19.  
  20. tmp = graph.addNode("","RTGI")
  21. tmp.addAttribute(atr1,"http://rtgi.fr")
  22. tmp.addAttribute(atr2,'')
  23.  
  24. tmp = graph.addNode("","BarabasiLab")
  25. tmp.addAttribute(atr1,"http://barabasilab.com")
  26. tmp.addAttribute(atr2,'')
  27. tmp.addAttribute(atr3,'false')
  28.  
  29. graph.addEdge("","","",weight='')
  30. graph.addEdge("","","",weight='')
  31. graph.addEdge("","","",weight='')
  32. graph.addEdge("","","",weight='')
  33. graph.addEdge("","","",weight='')
  34.  
  35. output_file=open(".\data.gexf","w")
  36. gexf.write(output_file)

生成的最终文件data.gexf:

  1. <?xml version='1.0' encoding='utf-8'?>
  2. <gexf xmlns:viz="http://www.gexf.net/1.2draft/viz" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.gephi.org/gexf/1.2draft" xmlns:ns0="xsi" version="1.2" ns0:schemaLocation="http://www.gephi.org/gexf/1.1draft http://gephi.org/gexf/1.2draft.xsd">
  3. <meta lastmodified="2015-08-24">
  4. <creator>Gephi.org</creator>
  5. <description>A Web network</description>
  6. </meta>
  7. <graph defaultedgetype="directed" label="A Web network" mode="static" timeformat="double">
  8. <attributes class="node" mode="static">
  9. <attribute id="0" title="url" type="string"/>
  10. <attribute id="1" title="indegree" type="float"/>
  11. <attribute id="2" title="frog" type="boolean">
  12. <default>true</default>
  13. </attribute>
  14. </attributes>
  15. <nodes>
  16. <node id="0" label="Gephi">
  17. <attvalues>
  18. <attvalue for="0" value="http://gephi.org"/>
  19. <attvalue for="1" value="1"/>
  20. </attvalues>
  21. </node>
  22. <node id="1" label="Webatlas">
  23. <attvalues>
  24. <attvalue for="0" value="http://webatlas.fr"/>
  25. <attvalue for="1" value="2"/>
  26. </attvalues>
  27. </node>
  28. <node id="2" label="RTGI">
  29. <attvalues>
  30. <attvalue for="0" value="http://rtgi.fr"/>
  31. <attvalue for="1" value="1"/>
  32. </attvalues>
  33. </node>
  34. <node id="3" label="BarabasiLab">
  35. <attvalues>
  36. <attvalue for="0" value="http://barabasilab.com"/>
  37. <attvalue for="1" value="1"/>
  38. <attvalue for="2" value="false"/>
  39. </attvalues>
  40. </node>
  41. </nodes>
  42. <edges>
  43. <edge id="0" source="0" target="1" weight="1"/>
  44. <edge id="1" source="0" target="2" weight="1"/>
  45. <edge id="2" source="1" target="0" weight="1"/>
  46. <edge id="3" source="2" target="1" weight="1"/>
  47. <edge id="4" source="0" target="3" weight="1"/>
  48. </edges>
  49. </graph>
  50. </gexf>

导入到Gephi中:

Python生成gexf文件并导入gephi做网络图分析的更多相关文章

  1. Python生成pyc文件

    Python生成pyc文件 pyc文件是py文件编译后生成的字节码文件(byte code).pyc文件经过python解释器最终会生成机器码运行.所以pyc文件是可以跨平台部署的,类似Java的.c ...

  2. windows平台 python生成 pyd文件

    Python的文件类型介绍: .py       python的源代码文件 .pyc     Python源代码import后,编译生成的字节码 .pyo     Python源代码编译优化生成的字节 ...

  3. VNPY加密教程(Python生成pyd文件)

    安装成功之后,再修改设置.让Cython可以找到vcarsall.bat.此处有两种方案.(我采用方案1,亲测可用.方案2未测试,看似可用.) 方案1:修改Python安装目录的文件设置 window ...

  4. Python生成pyd文件

    Python的脚本文件是开源的,量化策略的安全性没有保障.因此需要保护源码.那么要对Python代码进行混淆.加密保护. 混淆代码,我准备使用pyminifier.而加密处理,就比较麻烦. Pytho ...

  5. python 生成 pyc 文件

    以 pyc 为扩展名的是Python的编译文件.其执行速度快于 py 文件且不能用文本编辑编辑查看.所以 pyc 文件往往代替 py 文件发布. Python 在执行时,首先会将 py 文件中的源代码 ...

  6. python生成xml文件

    先上代码: #!/usr/bin/env python3 # _*_ coding: utf-8 _*_ from xml.dom.minidom import Document def readFi ...

  7. C# 生成dll文件 并导入使用

    首先 在unity创建一个脚本 并编写内容,其中需要调用的方法.变量要公有化(也可以直接新建cs文件用编译器打开编译,但要先导入UnityEngine.dll). 然后,复制脚本关闭unity,在外界 ...

  8. 使用python生成c文件模板

    目标 完成一个python脚本,实现指定名字后,自动生成.c和.h的模板.例如: /** * @file epc.c * @author 陈维 * @version V01 * @date 2017. ...

  9. Python 动态从文件中导入类或函数的方法

    假设模块文件名是data_used_to_test.py,放在tests文件夹下 文件夹结构如下: project |-tests |-data_used_to_test.py 文件内包含一个test ...

随机推荐

  1. 2081.09.22 Kuma(非旋treap)

    描述 有N张卡片,编号从0到n-1, 刚开始从0到n-1按顺序排好. 现有一个操作, 对于p. l,表示从第p张卡片之后的l张卡片拿到 最前面. 例如n=7的时候, 刚开始卡片序列为0 1 2 3 4 ...

  2. 安装memcache服务

    d:\tools\memcache\setup\memcached -d install

  3. id 与 void * 转换

    MRC 环境下: id 变量赋值给 void * 变量运行时不会有问题. id obj1 = [NSObject new];void * p = obj1; void * 变量赋值给 id 变量并调用 ...

  4. 第二届普适计算和信号处理及应用国际会议论文2016年 The 2nd Conference on Pervasive Computing, Signal Processing and Applications(PCSPA, 2016)

    A New Method for Mutual Coupling Correction of Array Output Signal 一种阵列输出信号互耦校正的新方法 Research of Robu ...

  5. 【翻译】追溯“typeof null”的历史

    我的翻译小站:https://www.zcfy.cc/article/the-history-of-typeof-null 翻译原文链接:http://2ality.com/2013/10/typeo ...

  6. hdu3333 Turing Tree 2016-09-18 20:53 42人阅读 评论(0) 收藏

    Turing Tree Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Tota ...

  7. Bug中的中的小问题编程需要注意

    Bug中的中的小问题编程需要注意 1. 关于局部变量与全局变量是否同名问题 如果参数传递的是一个数组,且全局变量与参数数据同名,则局部变量作用域中,这两个同名的数据可能会引起冲突. 如下:如果一开始是 ...

  8. 循环读取list 的几种方法?

    1.最常用的方法.循环找出该位子的list元素for(int i = 0;i < list.size(); i ++){System.out.println(list.get(i));}2.利用 ...

  9. 关于ListBox的几个问题

    Winfrom ListBox绑定数据源list界面不更新问题与绑定数据源不可CRUD问题 场景:获取一个listbox的选中项添加到另一个listbox中 解决方案-1:不要直接绑定DataSour ...

  10. linux系统编程之文件与IO(二):系统调用read和write

    read系统调用 一旦有了与一个打开文件描述相连的文件描述符,只要该文件是用O_RDONLY或O_RDWR标志打开的,就可以用read()系统调用从该文件中读取字节 函数原型: #include &l ...