在igraph中为图形添加顶点标签

9

adj是Python中的一个NumPy数组。

from igraph import *
g = Graph.Adjacency(adj.tolist())
plot(g)

图像上没有顶点标签,只有节点和边。我该如何启用绘图以显示标签或顶点序列?谢谢。
1个回答

12
жӮЁеҸҜд»ҘеңЁ`plot()`зҡ„`vertex_label`е…ій”®еӯ—еҸӮж•°дёӯжҢҮе®ҡиҰҒдҪңдёәеҲ—иЎЁжҳҫзӨәзҡ„ж Үзӯҫпјҡ
plot(g, vertex_label=["A", "B", "C"])
如果您的图形中的顶点恰好具有名为label的顶点属性,则igraph默认情况下将在绘图中使用这些属性,因此您也可以执行以下操作:
g.vs["label"] = ["A", "B", "C"]
plot(g)

查看Graph.__plot__函数的文档以获取更多详细信息。(plot()只是一个薄包装器,它调用您将其作为第一个参数传递给它的任何对象的__plot__方法)。


1
谢谢!节点的顺序是什么?例如,我怎么知道标签“A”代表节点0?另一个不相关的问题是:我在哪里可以找到布局算法的源代码? - Sean
2
在igraph图中,节点和边始终具有从零开始的数字ID,并且标签应按数字ID的递增顺序指定。如果您使用Graph.Adjacency构建图形,则具有索引i的节点始终对应于矩阵的行/列i - Tamás
2
关于布局:当没有指定特定的布局算法时,igraph使用的算法取决于图的大小;请参见 https://github.com/igraph/igraph/blob/master/interfaces/python/igraph/__init__.py#L1328 。然而,实际的布局算法是用C语言实现的:https://github.com/igraph/igraph/blob/master/src/layout.c。 - Tamás

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接