Python生成gexf文件并导入gephi做网络图分析
Gephi是一款优秀的复杂网络分析软件,支持导入多种格式的文件。gexf格式是Gephi 推荐的格式,基于 XML。本文是一个用python写的简单Demo,示例如何生成一个典型的gexf格式文件。代码基于pygexf包(下载地址:https://github.com/paulgirard/pygexf)。 代码很简单不做解释。
Python 代码:
- import sys,pprint
- from gexf import Gexf
- # test helloworld.gexf
- gexf = Gexf("Gephi.org","A Web network")
- graph=gexf.addGraph("directed","static","A Web network")
- atr1 = graph.addNodeAttribute('url',type='string')
- atr2 = graph.addNodeAttribute('indegree',type='float')
- atr3 = graph.addNodeAttribute('frog',type='boolean',defaultValue='true')
- tmp = graph.addNode("","Gephi")
- tmp.addAttribute(atr1,"http://gephi.org")
- tmp.addAttribute(atr2,'')
- tmp = graph.addNode("","Webatlas")
- tmp.addAttribute(atr1,"http://webatlas.fr")
- tmp.addAttribute(atr2,'')
- tmp = graph.addNode("","RTGI")
- tmp.addAttribute(atr1,"http://rtgi.fr")
- tmp.addAttribute(atr2,'')
- tmp = graph.addNode("","BarabasiLab")
- tmp.addAttribute(atr1,"http://barabasilab.com")
- tmp.addAttribute(atr2,'')
- tmp.addAttribute(atr3,'false')
- graph.addEdge("","","",weight='')
- graph.addEdge("","","",weight='')
- graph.addEdge("","","",weight='')
- graph.addEdge("","","",weight='')
- graph.addEdge("","","",weight='')
- output_file=open(".\data.gexf","w")
- gexf.write(output_file)
生成的最终文件data.gexf:
- <?xml version='1.0' encoding='utf-8'?>
- <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">
- <meta lastmodified="2015-08-24">
- <creator>Gephi.org</creator>
- <description>A Web network</description>
- </meta>
- <graph defaultedgetype="directed" label="A Web network" mode="static" timeformat="double">
- <attributes class="node" mode="static">
- <attribute id="0" title="url" type="string"/>
- <attribute id="1" title="indegree" type="float"/>
- <attribute id="2" title="frog" type="boolean">
- <default>true</default>
- </attribute>
- </attributes>
- <nodes>
- <node id="0" label="Gephi">
- <attvalues>
- <attvalue for="0" value="http://gephi.org"/>
- <attvalue for="1" value="1"/>
- </attvalues>
- </node>
- <node id="1" label="Webatlas">
- <attvalues>
- <attvalue for="0" value="http://webatlas.fr"/>
- <attvalue for="1" value="2"/>
- </attvalues>
- </node>
- <node id="2" label="RTGI">
- <attvalues>
- <attvalue for="0" value="http://rtgi.fr"/>
- <attvalue for="1" value="1"/>
- </attvalues>
- </node>
- <node id="3" label="BarabasiLab">
- <attvalues>
- <attvalue for="0" value="http://barabasilab.com"/>
- <attvalue for="1" value="1"/>
- <attvalue for="2" value="false"/>
- </attvalues>
- </node>
- </nodes>
- <edges>
- <edge id="0" source="0" target="1" weight="1"/>
- <edge id="1" source="0" target="2" weight="1"/>
- <edge id="2" source="1" target="0" weight="1"/>
- <edge id="3" source="2" target="1" weight="1"/>
- <edge id="4" source="0" target="3" weight="1"/>
- </edges>
- </graph>
- </gexf>
导入到Gephi中:
Python生成gexf文件并导入gephi做网络图分析的更多相关文章
- Python生成pyc文件
Python生成pyc文件 pyc文件是py文件编译后生成的字节码文件(byte code).pyc文件经过python解释器最终会生成机器码运行.所以pyc文件是可以跨平台部署的,类似Java的.c ...
- windows平台 python生成 pyd文件
Python的文件类型介绍: .py python的源代码文件 .pyc Python源代码import后,编译生成的字节码 .pyo Python源代码编译优化生成的字节 ...
- VNPY加密教程(Python生成pyd文件)
安装成功之后,再修改设置.让Cython可以找到vcarsall.bat.此处有两种方案.(我采用方案1,亲测可用.方案2未测试,看似可用.) 方案1:修改Python安装目录的文件设置 window ...
- Python生成pyd文件
Python的脚本文件是开源的,量化策略的安全性没有保障.因此需要保护源码.那么要对Python代码进行混淆.加密保护. 混淆代码,我准备使用pyminifier.而加密处理,就比较麻烦. Pytho ...
- python 生成 pyc 文件
以 pyc 为扩展名的是Python的编译文件.其执行速度快于 py 文件且不能用文本编辑编辑查看.所以 pyc 文件往往代替 py 文件发布. Python 在执行时,首先会将 py 文件中的源代码 ...
- python生成xml文件
先上代码: #!/usr/bin/env python3 # _*_ coding: utf-8 _*_ from xml.dom.minidom import Document def readFi ...
- C# 生成dll文件 并导入使用
首先 在unity创建一个脚本 并编写内容,其中需要调用的方法.变量要公有化(也可以直接新建cs文件用编译器打开编译,但要先导入UnityEngine.dll). 然后,复制脚本关闭unity,在外界 ...
- 使用python生成c文件模板
目标 完成一个python脚本,实现指定名字后,自动生成.c和.h的模板.例如: /** * @file epc.c * @author 陈维 * @version V01 * @date 2017. ...
- Python 动态从文件中导入类或函数的方法
假设模块文件名是data_used_to_test.py,放在tests文件夹下 文件夹结构如下: project |-tests |-data_used_to_test.py 文件内包含一个test ...
随机推荐
- 2081.09.22 Kuma(非旋treap)
描述 有N张卡片,编号从0到n-1, 刚开始从0到n-1按顺序排好. 现有一个操作, 对于p. l,表示从第p张卡片之后的l张卡片拿到 最前面. 例如n=7的时候, 刚开始卡片序列为0 1 2 3 4 ...
- 安装memcache服务
d:\tools\memcache\setup\memcached -d install
- id 与 void * 转换
MRC 环境下: id 变量赋值给 void * 变量运行时不会有问题. id obj1 = [NSObject new];void * p = obj1; void * 变量赋值给 id 变量并调用 ...
- 第二届普适计算和信号处理及应用国际会议论文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 ...
- 【翻译】追溯“typeof null”的历史
我的翻译小站:https://www.zcfy.cc/article/the-history-of-typeof-null 翻译原文链接:http://2ality.com/2013/10/typeo ...
- 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 ...
- Bug中的中的小问题编程需要注意
Bug中的中的小问题编程需要注意 1. 关于局部变量与全局变量是否同名问题 如果参数传递的是一个数组,且全局变量与参数数据同名,则局部变量作用域中,这两个同名的数据可能会引起冲突. 如下:如果一开始是 ...
- 循环读取list 的几种方法?
1.最常用的方法.循环找出该位子的list元素for(int i = 0;i < list.size(); i ++){System.out.println(list.get(i));}2.利用 ...
- 关于ListBox的几个问题
Winfrom ListBox绑定数据源list界面不更新问题与绑定数据源不可CRUD问题 场景:获取一个listbox的选中项添加到另一个listbox中 解决方案-1:不要直接绑定DataSour ...
- linux系统编程之文件与IO(二):系统调用read和write
read系统调用 一旦有了与一个打开文件描述相连的文件描述符,只要该文件是用O_RDONLY或O_RDWR标志打开的,就可以用read()系统调用从该文件中读取字节 函数原型: #include &l ...