使用之前需要先导入:
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 eprint'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"]=epropg.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