Python - 图相关知识(一)Graph-tools

Python - 图相关知识(一)Graph-tools

导入包

from graph_tool.all import *

1、创建一个图

有向图

g = Graph()

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

2、创建节点

# 创建一个节点,返回顶点描述符(顶点类的一个实例),存放在v1中
v1 = g.add_vertex()

# 创建多个节点, 创建10个顶点,返回有10个顶点的描述符迭代器
vlist = g.add_vertex(10)

# 删除节点
g.remove_vertex(v2)

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

# 遍历顶点
for v in g.verices():
	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.edeg(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、属性映射:将额外的信息添加到顶点或者边上

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

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()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值