1

您好,我是 igraph 的新手。

我正在尝试使用 python 模块 igraph 来可视化图形。图 G 是 Karger 最小割的输出,所以它总是只有 2 个顶点。

到目前为止,igraph 的问题是,我只能将边缘中的顶点 ID 定义为从零开始的数字(0、1、...)。厘米。

而 Karger min-cut 的输出是随机编号的顶点。假设 Karger 最小割的输入是具有 300 个顶点且 ID = 0..299 的图,那么输出图有两个随机 ID 编号为 0..299 的顶点。

例如,图 G(作为 igraph 的输入)具有边 = [(124, 207), (207, 124)]。如果我尝试绘制 G,

>>> import igraph
>>> edges = [(124, 207), (207, 124)]
>>> g = igraph.Graph(edges=edges, directed=False)
>>> layout = g.layout("kk")
>>> igraph.plot(g, layout=layout)

那么结果图有 207 个顶点,而不是预期的仅有的 2 个顶点,因为它应该是 [(0,1), (1,0)],这是从零开始的顶点。

如何使用 igraph 以便我可以使用非零基 ID 绘制两个顶点?

非常感谢。

更新:我已经解决了我的问题,正如@Gabor Csardi 在评论中所建议的那样,

>>> g = igraph.Graph()
>>> g.add_vertices(2)
>>> g.vs["name"] = ["124", "207"]
>>> edges = [("124", "207"), ("207", "124")]
>>> g.add_edges(edges)
>>> layout = g.layout("kk")
>>> igraph.plot(g, layout=layout)

但是,如果有更好的解决方案,请回答,谢谢。

4

0 回答 0