【Python】学习Python-igraph

总结:学习一种全新的语言看官方的文档是真的很有帮助,这次我的大部分python代码的完成都是靠着igraph官方的API文档。

官方API:http://pythonhosted.org/python-igraph/igraph.Graph-class.html

首先导入igraph工具包 from igraph import *(python语法)

报错:No module named 'igraph._igraph',原因是你在你安装源码的文件夹下import,这时import的不是你刚才安装的模块,而是自带的包。切换路径即可。

报错:DeprecationWarning: To avoid name collision with the igraph project, this visualization library has been renamed to 'jgraph'. Please upgrade when convenient. 原因是igraph强迫你更新,打开提示的_init_.py文件,把报错语句删除即可。(先别急着删除,往下看)

创建图 g = Graph.Tree(127, 2)

报错:AttributeError: module 'igraph' has no attribute 'Graph'。原因是,官方有两个igraph库,一个是igraph,一个是python-igraph,安装错了,卸载pip uninstall igraph,重装 pip install python_igraph-0.7.1.post4-cp27-none-win32.whl

这里提示一下,楼主最后放弃安装,因为只有32位版本,不适合64位机器。而这个网址中的64版本全部不能下载了,所以最后放弃了。

运行fastunfloding算法 g.community_multilevel("weight",True)
绘制graph plot(g)
代码参考 fastunfloding.txt

给图添加边并且添加权值:g.add_edges([(0,1)])
g.es[1]["weight"]=2
其中g.es[1]代表的是第一条边

最开始我的图是从数据库导出,即(点,点,权)这种模式所以就需要从txt文档中读边并且建立图
打开文件:f = open('D:\\test1\\test.txt','r')
读文件中一行:line =  f.readline() 注:line是字符串的形式
取出文件一行的整数并且加入到数组尾部 result.append(map(int,line.split(',')))


读图完毕后就需要将图放到fastunfolding算法中去了
a = g.community_multilevel("weight",True)
官方API上说 当g.community_multilevel最后一个参数为True的时候
a返回的是一组list,list的存放位置在(a[0])处,a[0][s]代表着
community为s的所有顶点

注:a list of VertexClustering objects, one corresponding to each level (if return_levels is True)

取list长度:len(a[0])

将输入的图存成gml格式:g.write_graphmlz(self, f, compresslevel=9)

读gml格式的图:g = Graph.Read_GraphMLz("D:\\test1\\final_graph.gml")

转载自:http://blog.csdn.net/crazyacm/article/details/46444579

展开阅读全文
©️2020 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值