(python)Graph_tools模块学习

使用之前需要先导入:

from graph_tool.all import *

1、  创建一个图

有向图:g = Graph()

无向图:ug = Graph(directed=False)

或ug = Graph()
ug.set_directed(False)

2、 创建节点:v1 = g.add_vertex()

      解释:创建顶点,返回顶点描述符(顶点类的一个实例),存放在V1中。

创建多个节点:vlist=g.add_vertex(10)

      解释:创建10个顶点,返回有10个顶点的描述符迭代器。

删除节点:g.remove_vertex(v2)

获取顶点的索引:print(g.vertex_index[v]) 或print int(v)

      解释:每个顶点在图中有独一无二的编号。

遍历顶点:for v in g.vertices():

              print(v)

获得顶点描述符: v= g.vertex(8)

      解释:通过编号获得顶点描述符。

查询点的出度:print(v1.out_degree())

入度:print(v1.in_degree())

遍历每个顶点的出入边及出入邻接节点:

for v in g.vertices():

   print 'vertex%d\'s out_edges'%g.vertex_index[v]

   for e in v.out_edges():

      print e

print'vertex%d\'sout_neighbours'%g.vertex_index[v]

   for w in v.out_neighbours():

      print w

 

   

3、 创建边:e = g.add_edge(v1, v2)

    解释:创建边,返回边描述符(边类的一个实例)

删除边:g.remove_edge(e)

获取边的索引:print(g.edge_index[e])

通过索引获取边描述符: e=g.edge(2,3)

遍历边:for e in e.edges():
         print(e)

查询边的源顶点,目标顶点:print(e.source(),e.target())

4、 输出到.pdf文件:

graph_draw(g,vertex_text=g.vertex_index,vertex_font_size=18,output_size=(200,200), output="8-nodes.pdf")

5、属性映射:将额外的信息添加到顶点或边上

创建新的顶点映射,参数为类型

值'vertex1'通过顶点描述符g.vertex(10)来访问。

vprop_string = self.g.new_vertex_property("string") 

vprop_string [g.vertex(10)] = 'vertex1'

为边添加属性:

eprop=g.new_edge_property("string")

g.edge_properties["sometime"]=eprop

g.list_properties()

输出>>>sometime (edge) (type:string)

内部属性映射:任何被创建的属性映射都可以被内置到图中,通过在图的类字典属性中包含它们,这样属性映射就可以和图一起被保存。

 

记录几个网址:

http://canoncial.blog.163.com/blog/static/184149801201345102530123/
http://graph-tool.skewed.de/
http://graph-tool.skewed.de/static/doc/index.html
http://graph-tool.skewed.de/download

posted @ 2014-12-27 21:54  云裳诉  阅读(1452)  评论(0编辑  收藏  举报