i-graph-python参数等效于networkx中的pos

时间:2018-10-17 14:04:07

标签: python-3.x igraph networkx

在networkx中,我可以使用的第二个参数输入要绘制的节点的位置

nx.draw(G, pos)

例如,我可以做这样的事情:

    pos[sourceNode]=(x1,y1)
    pos[targetNode]=(x2,y2)        

我知道i-graph具有一个参数布局,但是我无法发现如何使用它!

你能帮我吗?

1 个答案:

答案 0 :(得分:1)

您是对的;为了自己定位节点,您需要对layout使用plot参数。以下是一些基本示例,显示了如何使用自动布局功能以及如何制作自己的布局。

首先,让我们以一个简单的图形为例。我正在设置随机种子,以使结果可重复。

from igraph import * 
import random

random.seed(123)
g = Graph.Erdos_Renyi(5, 0.5)
plot(g)

First plot - no layout

仅以这种方式绘制时,您无法控制布局。

有许多内置函数可以使用特定的算法来生成布局。

LO = g.layout_kamada_kawai()
plot(g, layout=LO) 

Kamada-Kawai Layout

但是,如果要完全控制,则需要构建自己的布局。布局只是[x,y]对的序列,表示对放置节点的位置。虽然x以预期的方式工作,但低y坐标在顶部,高y值在底部,因此您需要做一些转置以设置布局。

LO = [[0.0,1.0], [1.0,0.0], [1.0,1.0], [0.0,0.0], [0.5,-0.5]]
plot(g, layout=LO) 

Hand-crafted layout