通过 x,y 坐标在 python iGraph 中定义顶点
define vertex in python iGraph by x,y coordinates
我正在尝试使用 igprah lybrari 在 python 中定义一个顶点。当我尝试将其定义为单个整数时没有问题,但是如果我想将顶点定义为(x 坐标,y 坐标)并在这样定义的 2 个顶点之间添加一条边,则会出现错误:
TypeError: only numbers, vertex names or igraph.Vertex objects can be converted to vertex IDs
所以我尝试创建 namedtupel
Coordinates = namedtuple('Coordinates','x,y')
firstVertex = Coordinates(1,2)
secondVertex = Coordinates(3,4)
然后我尝试在这些顶点之间添加边时使用隐式转换,但它不起作用。
TypeError: int() argument must be a string, a bytes-like object or a number, not 'Coordinates'
有什么方法可以用 x,y 坐标定义顶点并在 igraph 库中使用它吗?或者有没有更好的方法来处理这种图形,我需要用坐标定义我的顶点?谢谢你的帮助。
igraph 仅支持整数或字符串作为顶点 ID。如果需要存储与顶点相关的任何其他数据,则必须将其存储为顶点属性。例如:
>>> g = Graph(3)
>>> g.vs[0]["coordinates"] = (1, 2)
>>> g.vs[1]["coordinates"] = (3, 4)
这会将 (1, 2)
分配给顶点 0 的 "coordinates"
顶点属性,并将 (3, 4)
分配给顶点 1 的 "coordinates" 顶点属性。取决于你想要什么为此,最好使用两个单独的顶点属性(x
和 y
),因为在绘制图形时它们会自动用作布局坐标。例如:
>>> g.vs[0]["x"], g.vs[0]["y"] = 1, 2
还有一个shorthand符号,用于为所有顶点分配顶点属性的值:
>>> g.vs["x"] = [1, 2, 3]
>>> g.vs["y"] = [2, 4, 6]
>>> g.vs[0]["x"], g.vs[0]["y"]
(1, 2)
>>> g.vs[1]["x"], g.vs[1]["y"]
(2, 4)
>>> g.vs[2]["x"], g.vs[2]["y"]
(3, 6)
我正在尝试使用 igprah lybrari 在 python 中定义一个顶点。当我尝试将其定义为单个整数时没有问题,但是如果我想将顶点定义为(x 坐标,y 坐标)并在这样定义的 2 个顶点之间添加一条边,则会出现错误:
TypeError: only numbers, vertex names or igraph.Vertex objects can be converted to vertex IDs
所以我尝试创建 namedtupel
Coordinates = namedtuple('Coordinates','x,y')
firstVertex = Coordinates(1,2)
secondVertex = Coordinates(3,4)
然后我尝试在这些顶点之间添加边时使用隐式转换,但它不起作用。
TypeError: int() argument must be a string, a bytes-like object or a number, not 'Coordinates'
有什么方法可以用 x,y 坐标定义顶点并在 igraph 库中使用它吗?或者有没有更好的方法来处理这种图形,我需要用坐标定义我的顶点?谢谢你的帮助。
igraph 仅支持整数或字符串作为顶点 ID。如果需要存储与顶点相关的任何其他数据,则必须将其存储为顶点属性。例如:
>>> g = Graph(3)
>>> g.vs[0]["coordinates"] = (1, 2)
>>> g.vs[1]["coordinates"] = (3, 4)
这会将 (1, 2)
分配给顶点 0 的 "coordinates"
顶点属性,并将 (3, 4)
分配给顶点 1 的 "coordinates" 顶点属性。取决于你想要什么为此,最好使用两个单独的顶点属性(x
和 y
),因为在绘制图形时它们会自动用作布局坐标。例如:
>>> g.vs[0]["x"], g.vs[0]["y"] = 1, 2
还有一个shorthand符号,用于为所有顶点分配顶点属性的值:
>>> g.vs["x"] = [1, 2, 3]
>>> g.vs["y"] = [2, 4, 6]
>>> g.vs[0]["x"], g.vs[0]["y"]
(1, 2)
>>> g.vs[1]["x"], g.vs[1]["y"]
(2, 4)
>>> g.vs[2]["x"], g.vs[2]["y"]
(3, 6)