Python 在graph_工具中添加边权重和缩放绘制的边长度

Python 在graph_工具中添加边权重和缩放绘制的边长度,python,graph,visualization,graph-tool,Python,Graph,Visualization,Graph Tool,我正在使用,但找不到定义边权重的方法。如何将边权重添加到图形中 此外,我希望当我使用graph\u draw时,图形将根据权重绘制边缘距离。我怎样才能做到这一点呢?您正在寻找的。从文档中: 特性贴图是将附加信息与顶点、边或图形本身关联的一种方式。因此,有三种类型的属性贴图:顶点、边和图。它们都由同一个类PropertyMap处理 特性贴图比简单的边权重灵活得多,因为可以将任意对象附着到图形节点和边,但使用它们将边映射到浮点值或整数值也可以达到相同的效果 文档中的示例代码: from iterto

我正在使用,但找不到定义边权重的方法。如何将边权重添加到图形中

此外,我希望当我使用
graph\u draw
时,图形将根据权重绘制边缘距离。我怎样才能做到这一点呢?

您正在寻找的。从文档中:

特性贴图是将附加信息与顶点、边或图形本身关联的一种方式。因此,有三种类型的属性贴图:顶点、边和图。它们都由同一个类PropertyMap处理

特性贴图比简单的边权重灵活得多,因为可以将任意对象附着到图形节点和边,但使用它们将边映射到浮点值或整数值也可以达到相同的效果

文档中的示例代码:

from itertools import izip
from numpy.random import randint

g = Graph()
g.add_vertex(100)
# insert some random links
for s,t in izip(randint(0, 100, 100), randint(0, 100, 100)):
    g.add_edge(g.vertex(s), g.vertex(t))

vprop_double = g.new_vertex_property("double")            # Double-precision floating point
vprop_double[g.vertex(10)] = 3.1416

vprop_vint = g.new_vertex_property("vector<int>")         # Vector of ints
vprop_vint[g.vertex(40)] = [1, 3, 42, 54]

eprop_dict = g.new_edge_property("object")                # Arbitrary python object.
eprop_dict[g.edges().next()] = {"foo": "bar", "gnu": 42}  # In this case, a dict.

gprop_bool = g.new_edge_property("bool")                  # Boolean
gprop_bool[g] = True
从itertools导入izip
从numpy.random导入randint
g=图()
g、 添加_顶点(100)
#插入一些随机链接
对于izip中的s,t(randint(01100100),randint(01100100)):
g、 添加_边(g顶点(s),g顶点(t))
vprop_double=g.new_vertex_属性(“double”)#双精度浮点
vprop_双[g.顶点(10)]=3.1416
vprop_vint=g.new_顶点属性(“向量”)#整数向量
vprop_vint[g.vertex(40)]=[1,3,42,54]
eprop_dict=g.new_edge_属性(“对象”)#任意python对象。
eprop_dict[g.edges().next()]={“foo”:“bar”,“gnu”:42}#在本例中,dict。
gprop_bool=g.new_edge_属性(“bool”)#布尔值
gprop_bool[g]=真

对于问题的第二部分,这里是图形工具,它包含一些不同的算法,您可以使用这些算法来显示图形,而不是
graph\u draw
。请看一看接受边属性映射作为输入参数的算法。我以前没有使用过它们,但看起来在创建布局对象时传入正确的边权重属性贴图应该会为您处理边长度缩放。

非常感谢。这是非常有用的。